TSTP Solution File: ALG263^3 by Lash---1.13
View Problem
- Process Solution
%------------------------------------------------------------------------------
% File : Lash---1.13
% Problem : ALG263^3 : TPTP v8.1.2. Bugfixed v5.2.0.
% Transfm : none
% Format : tptp:raw
% Command : lash -P picomus -M modes -p tstp -t %d %s
% Computer : n012.cluster.edu
% Model : x86_64 x86_64
% CPU : Intel(R) Xeon(R) CPU E5-2620 v4 2.10GHz
% Memory : 8042.1875MB
% OS : Linux 3.10.0-693.el7.x86_64
% CPULimit : 300s
% WCLimit : 300s
% DateTime : Wed Aug 30 16:33:47 EDT 2023
% Result : Theorem 0.19s 0.46s
% Output : Proof 0.19s
% Verified :
% SZS Type : ERROR: Analysing output (MakeTreeStats fails)
% Comments :
%------------------------------------------------------------------------------
thf(ty_subst,type,
subst: $tType ).
thf(ty_term,type,
term: $tType ).
thf(ty_eigen__1,type,
eigen__1: term > $o ).
thf(ty_id,type,
id: subst ).
thf(ty_comp,type,
comp: subst > subst > subst ).
thf(ty_lam,type,
lam: term > term ).
thf(ty_eigen__2,type,
eigen__2: term ).
thf(ty_sub,type,
sub: term > subst > term ).
thf(ty_eigen__0,type,
eigen__0: subst > term > subst > $o ).
thf(ty_push,type,
push: term > subst > subst ).
thf(ty_var,type,
var: term > $o ).
thf(ty_one,type,
one: term ).
thf(ty_sh,type,
sh: subst ).
thf(ty_ap,type,
ap: term > term > term ).
thf(sP1,plain,
( sP1
<=> ( var @ eigen__2 ) ),
introduced(definition,[new_symbols(definition,[sP1])]) ).
thf(sP2,plain,
( sP2
<=> ( eigen__2
= ( sub @ eigen__2 @ id ) ) ),
introduced(definition,[new_symbols(definition,[sP2])]) ).
thf(sP3,plain,
( sP3
<=> ( ( var @ ( sub @ eigen__2 @ id ) )
=> ( eigen__0 @ id @ eigen__2 @ id ) ) ),
introduced(definition,[new_symbols(definition,[sP3])]) ).
thf(sP4,plain,
( sP4
<=> ( ( eigen__1 @ eigen__2 )
= ( eigen__0 @ id @ eigen__2 @ id ) ) ),
introduced(definition,[new_symbols(definition,[sP4])]) ).
thf(sP5,plain,
( sP5
<=> ( var @ ( sub @ eigen__2 @ id ) ) ),
introduced(definition,[new_symbols(definition,[sP5])]) ).
thf(sP6,plain,
( sP6
<=> ! [X1: term] :
( ( sub @ X1 @ id )
= X1 ) ),
introduced(definition,[new_symbols(definition,[sP6])]) ).
thf(sP7,plain,
( sP7
<=> ( eigen__0 @ id @ eigen__2 @ id ) ),
introduced(definition,[new_symbols(definition,[sP7])]) ).
thf(sP8,plain,
( sP8
<=> ! [X1: term] :
( ( eigen__1 @ X1 )
= ( eigen__0 @ id @ X1 @ id ) ) ),
introduced(definition,[new_symbols(definition,[sP8])]) ).
thf(sP9,plain,
( sP9
<=> ( eigen__1 @ eigen__2 ) ),
introduced(definition,[new_symbols(definition,[sP9])]) ).
thf(sP10,plain,
( sP10
<=> ( ( sub @ eigen__2 @ id )
= eigen__2 ) ),
introduced(definition,[new_symbols(definition,[sP10])]) ).
thf(sP11,plain,
( sP11
<=> ! [X1: term] :
( ( var @ ( sub @ X1 @ id ) )
=> ( eigen__0 @ id @ X1 @ id ) ) ),
introduced(definition,[new_symbols(definition,[sP11])]) ).
thf(def_axapp,definition,
( axapp
= ( ! [X1: term,X2: term,X3: subst] :
( ( sub @ ( ap @ X1 @ X2 ) @ X3 )
= ( ap @ ( sub @ X1 @ X3 ) @ ( sub @ X2 @ X3 ) ) ) ) ) ).
thf(def_axvarcons,definition,
( axvarcons
= ( ! [X1: term,X2: subst] :
( ( sub @ one @ ( push @ X1 @ X2 ) )
= X1 ) ) ) ).
thf(def_axvarid,definition,
axvarid = sP6 ).
thf(def_axabs,definition,
( axabs
= ( ! [X1: term,X2: subst] :
( ( sub @ ( lam @ X1 ) @ X2 )
= ( lam @ ( sub @ X1 @ ( push @ one @ ( comp @ X2 @ sh ) ) ) ) ) ) ) ).
thf(def_axclos,definition,
( axclos
= ( ! [X1: term,X2: subst,X3: subst] :
( ( sub @ ( sub @ X1 @ X2 ) @ X3 )
= ( sub @ X1 @ ( comp @ X2 @ X3 ) ) ) ) ) ).
thf(def_axidl,definition,
( axidl
= ( ! [X1: subst] :
( ( comp @ id @ X1 )
= X1 ) ) ) ).
thf(def_axshiftcons,definition,
( axshiftcons
= ( ! [X1: term,X2: subst] :
( ( comp @ sh @ ( push @ X1 @ X2 ) )
= X2 ) ) ) ).
thf(def_axassoc,definition,
( axassoc
= ( ! [X1: subst,X2: subst,X3: subst] :
( ( comp @ ( comp @ X1 @ X2 ) @ X3 )
= ( comp @ X1 @ ( comp @ X2 @ X3 ) ) ) ) ) ).
thf(def_axmap,definition,
( axmap
= ( ! [X1: term,X2: subst,X3: subst] :
( ( comp @ ( push @ X1 @ X2 ) @ X3 )
= ( push @ ( sub @ X1 @ X3 ) @ ( comp @ X2 @ X3 ) ) ) ) ) ).
thf(def_axidr,definition,
( axidr
= ( ! [X1: subst] :
( ( comp @ X1 @ id )
= X1 ) ) ) ).
thf(def_axvarshift,definition,
( axvarshift
= ( ( push @ one @ sh )
= id ) ) ).
thf(def_axscons,definition,
( axscons
= ( ! [X1: subst] :
( ( push @ ( sub @ one @ X1 ) @ ( comp @ sh @ X1 ) )
= X1 ) ) ) ).
thf(def_ulamvar1,definition,
( ulamvar1
= ( var @ one ) ) ).
thf(def_ulamvarsh,definition,
( ulamvarsh
= ( ! [X1: term] :
( ^ [X2: $o,X3: $o] :
( X2
=> X3 )
@ ( var @ X1 )
@ ( var @ ( sub @ X1 @ sh ) ) ) ) ) ).
thf(def_ulamvarind,definition,
( ulamvarind
= ( ! [X1: term > $o] :
( ^ [X2: $o,X3: $o] :
( X2
=> X3 )
@ ( X1 @ one )
@ ( ^ [X2: $o,X3: $o] :
( X2
=> X3 )
@ ! [X2: term] :
( ^ [X3: $o,X4: $o] :
( X3
=> X4 )
@ ( var @ X2 )
@ ( ^ [X3: $o,X4: $o] :
( X3
=> X4 )
@ ( X1 @ X2 )
@ ( X1 @ ( sub @ X2 @ sh ) ) ) )
@ ! [X2: term] :
( ^ [X3: $o,X4: $o] :
( X3
=> X4 )
@ ( var @ X2 )
@ ( X1 @ X2 ) ) ) ) ) ) ).
thf(def_apinj1,definition,
( apinj1
= ( ! [X1: term,X2: term,X3: term,X4: term] :
( ^ [X5: $o,X6: $o] :
( X5
=> X6 )
@ ( ( ap @ X1 @ X3 )
= ( ap @ X2 @ X4 ) )
@ ( X1 = X2 ) ) ) ) ).
thf(def_apinj2,definition,
( apinj2
= ( ! [X1: term,X2: term,X3: term,X4: term] :
( ^ [X5: $o,X6: $o] :
( X5
=> X6 )
@ ( ( ap @ X1 @ X3 )
= ( ap @ X2 @ X4 ) )
@ ( X3 = X4 ) ) ) ) ).
thf(def_laminj,definition,
( laminj
= ( ! [X1: term,X2: term] :
( ^ [X3: $o,X4: $o] :
( X3
=> X4 )
@ ( ( lam @ X1 )
= ( lam @ X2 ) )
@ ( X1 = X2 ) ) ) ) ).
thf(def_shinj,definition,
( shinj
= ( ! [X1: term,X2: term] :
( ^ [X3: $o,X4: $o] :
( X3
=> X4 )
@ ( ( sub @ X1 @ sh )
= ( sub @ X2 @ sh ) )
@ ( X1 = X2 ) ) ) ) ).
thf(def_lamnotap,definition,
( lamnotap
= ( ! [X1: term,X2: term,X3: term] :
( (~)
@ ( ( lam @ X1 )
= ( ap @ X2 @ X3 ) ) ) ) ) ).
thf(def_apnotvar,definition,
( apnotvar
= ( ! [X1: term,X2: term] : ( (~) @ ( var @ ( ap @ X1 @ X2 ) ) ) ) ) ).
thf(def_lamnotvar,definition,
( lamnotvar
= ( ! [X1: term] : ( (~) @ ( var @ ( lam @ X1 ) ) ) ) ) ).
thf(def_induction,definition,
( induction
= ( ! [X1: term > $o] :
( ^ [X2: $o,X3: $o] :
( X2
=> X3 )
@ ! [X2: term] :
( ^ [X3: $o,X4: $o] :
( X3
=> X4 )
@ ( var @ X2 )
@ ( X1 @ X2 ) )
@ ( ^ [X2: $o,X3: $o] :
( X2
=> X3 )
@ ! [X2: term,X3: term] :
( ^ [X4: $o,X5: $o] :
( X4
=> X5 )
@ ( X1 @ X2 )
@ ( ^ [X4: $o,X5: $o] :
( X4
=> X5 )
@ ( X1 @ X3 )
@ ( X1 @ ( ap @ X2 @ X3 ) ) ) )
@ ( ^ [X2: $o,X3: $o] :
( X2
=> X3 )
@ ! [X2: term] :
( ^ [X3: $o,X4: $o] :
( X3
=> X4 )
@ ( X1 @ X2 )
@ ( X1 @ ( lam @ X2 ) ) )
@ ! [X2: term] : ( X1 @ X2 ) ) ) ) ) ) ).
thf(def_pushprop,definition,
( pushprop
= ( ! [X1: term > $o,X2: term,X3: subst] :
( ^ [X4: $o,X5: $o] :
( X4
=> X5 )
@ ! [X4: term] :
( ^ [X5: $o,X6: $o] :
( X5
=> X6 )
@ ( var @ X4 )
@ ( X1 @ ( sub @ X4 @ X3 ) ) )
@ ( ^ [X4: $o,X5: $o] :
( X4
=> X5 )
@ ( X1 @ X2 )
@ ! [X4: term] :
( ^ [X5: $o,X6: $o] :
( X5
=> X6 )
@ ( var @ X4 )
@ ( X1 @ ( sub @ X4 @ ( push @ X2 @ X3 ) ) ) ) ) ) ) ) ).
thf(def_induction2lem,definition,
( induction2lem
= ( ! [X1: term > $o] :
( ^ [X2: $o,X3: $o] :
( X2
=> X3 )
@ ! [X2: term,X3: term] :
( ^ [X4: $o,X5: $o] :
( X4
=> X5 )
@ ( X1 @ X2 )
@ ( ^ [X4: $o,X5: $o] :
( X4
=> X5 )
@ ( X1 @ X3 )
@ ( X1 @ ( ap @ X2 @ X3 ) ) ) )
@ ( ^ [X2: $o,X3: $o] :
( X2
=> X3 )
@ ! [X2: term] :
( ^ [X3: $o,X4: $o] :
( X3
=> X4 )
@ ! [X3: term] :
( ^ [X4: $o,X5: $o] :
( X4
=> X5 )
@ ( X1 @ X3 )
@ ( X1 @ ( sub @ X2 @ ( push @ X3 @ id ) ) ) )
@ ( X1 @ ( lam @ X2 ) ) )
@ ! [X2: term,X3: subst] :
( ^ [X4: $o,X5: $o] :
( X4
=> X5 )
@ ! [X4: term] :
( ^ [X5: $o,X6: $o] :
( X5
=> X6 )
@ ( var @ X4 )
@ ( X1 @ ( sub @ X4 @ X3 ) ) )
@ ( X1 @ ( sub @ X2 @ X3 ) ) ) ) ) ) ) ).
thf(def_induction2,definition,
( induction2
= ( ! [X1: term > $o] :
( ^ [X2: $o,X3: $o] :
( X2
=> X3 )
@ ! [X2: term] :
( ^ [X3: $o,X4: $o] :
( X3
=> X4 )
@ ( var @ X2 )
@ ( X1 @ X2 ) )
@ ( ^ [X2: $o,X3: $o] :
( X2
=> X3 )
@ ! [X2: term,X3: term] :
( ^ [X4: $o,X5: $o] :
( X4
=> X5 )
@ ( X1 @ X2 )
@ ( ^ [X4: $o,X5: $o] :
( X4
=> X5 )
@ ( X1 @ X3 )
@ ( X1 @ ( ap @ X2 @ X3 ) ) ) )
@ ( ^ [X2: $o,X3: $o] :
( X2
=> X3 )
@ ! [X2: term] :
( ^ [X3: $o,X4: $o] :
( X3
=> X4 )
@ ! [X3: term] :
( ^ [X4: $o,X5: $o] :
( X4
=> X5 )
@ ( X1 @ X3 )
@ ( X1 @ ( sub @ X2 @ ( push @ X3 @ id ) ) ) )
@ ( X1 @ ( lam @ X2 ) ) )
@ ! [X2: term] : ( X1 @ X2 ) ) ) ) ) ) ).
thf(def_substmonoid,definition,
( substmonoid
= ( ! [X1: subst,X2: subst,X3: subst] :
( ( comp @ ( comp @ X1 @ X2 ) @ X3 )
= ( comp @ X1 @ ( comp @ X2 @ X3 ) ) )
& ! [X1: subst] :
( ( comp @ id @ X1 )
= X1 )
& ! [X1: subst] :
( ( comp @ X1 @ id )
= X1 ) ) ) ).
thf(def_termmset,definition,
( termmset
= ( ! [X1: term,X2: subst,X3: subst] :
( ( sub @ ( sub @ X1 @ X2 ) @ X3 )
= ( sub @ X1 @ ( comp @ X2 @ X3 ) ) )
& sP6 ) ) ).
thf(def_hoasap,definition,
( hoasap
= ( ^ [X1: subst,X2: term,X3: subst,X4: term] : ( ap @ ( sub @ X2 @ X3 ) @ X4 ) ) ) ).
thf(def_hoaslam,definition,
( hoaslam
= ( ^ [X1: subst,X2: subst > term > term] : ( lam @ ( X2 @ sh @ one ) ) ) ) ).
thf(def_hoasvar,definition,
( hoasvar
= ( ^ [X1: subst,X2: term,X3: subst] : ( var @ ( sub @ X2 @ X3 ) ) ) ) ).
thf(def_hoasapinj1,definition,
( hoasapinj1
= ( ! [X1: term,X2: term,X3: term,X4: term] :
( ^ [X5: $o,X6: $o] :
( X5
=> X6 )
@ ( ( hoasap @ id @ X1 @ id @ X3 )
= ( hoasap @ id @ X2 @ id @ X4 ) )
@ ( X1 = X2 ) ) ) ) ).
thf(def_hoasapinj2,definition,
( hoasapinj2
= ( ! [X1: term,X2: term,X3: term,X4: term] :
( ^ [X5: $o,X6: $o] :
( X5
=> X6 )
@ ( ( hoasap @ id @ X1 @ id @ X3 )
= ( hoasap @ id @ X2 @ id @ X4 ) )
@ ( X3 = X4 ) ) ) ) ).
thf(def_hoaslaminj,definition,
( hoaslaminj
= ( ! [X1: subst > term > term] :
( ^ [X2: $o,X3: $o] :
( X2
=> X3 )
@ ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
@ ! [X2: subst > term > term] :
( ^ [X3: $o,X4: $o] :
( X3
=> X4 )
@ ! [X3: subst,X4: term,X5: subst] :
( ( sub @ ( X2 @ X3 @ X4 ) @ X5 )
= ( X2 @ ( comp @ X3 @ X5 ) @ ( sub @ X4 @ X5 ) ) )
@ ( ^ [X3: $o,X4: $o] :
( X3
=> X4 )
@ ( ( hoaslam @ id
@ ^ [X3: subst,X4: term] : ( X1 @ X3 @ X4 ) )
= ( hoaslam @ id
@ ^ [X3: subst,X4: term] : ( X2 @ X3 @ X4 ) ) )
@ ! [X3: subst,X4: term] :
( ( X1 @ X3 @ X4 )
= ( X2 @ X3 @ X4 ) ) ) ) ) ) ) ).
thf(def_hoaslamnotap,definition,
( hoaslamnotap
= ( ! [X1: subst > term > term] :
( ^ [X2: $o,X3: $o] :
( X2
=> X3 )
@ ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
@ ! [X2: term,X3: term] :
( (~)
@ ( ( hoaslam @ id
@ ^ [X4: subst,X5: term] : ( X1 @ X4 @ X5 ) )
= ( hoasap @ id @ X2 @ id @ X3 ) ) ) ) ) ) ).
thf(def_hoaslamnotvar,definition,
( hoaslamnotvar
= ( ! [X1: subst > term > term] :
( ^ [X2: $o,X3: $o] :
( X2
=> X3 )
@ ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
@ ( (~)
@ ( hoasvar @ id
@ ( hoaslam @ id
@ ^ [X2: subst,X3: term] : ( X1 @ X2 @ X3 ) )
@ id ) ) ) ) ) ).
thf(def_hoasapnotvar,definition,
( hoasapnotvar
= ( ! [X1: term,X2: term] : ( (~) @ ( hoasvar @ id @ ( hoasap @ id @ X1 @ id @ X2 ) @ id ) ) ) ) ).
thf(def_hoasinduction_p_and_p_prime,definition,
( hoasinduction_p_and_p_prime
= ( ^ [X1: subst > term > subst > $o,X2: term > $o] :
! [X3: term] :
( ( X2 @ X3 )
<=> ( X1 @ id @ X3 @ id ) ) ) ) ).
thf(def_hoasinduction_lem1v2,definition,
( hoasinduction_lem1v2
= ( ! [X1: subst > term > subst > $o,X2: term > $o] :
( ^ [X3: $o,X4: $o] :
( X3
=> X4 )
@ ! [X3: subst,X4: term,X5: subst,X6: subst] :
( ^ [X7: $o,X8: $o] :
( X7
=> X8 )
@ ( X1 @ X3 @ X4 @ ( comp @ X6 @ X5 ) )
@ ( X1 @ ( comp @ X3 @ X6 ) @ ( sub @ X4 @ X6 ) @ X5 ) )
@ ( ^ [X3: $o,X4: $o] :
( X3
=> X4 )
@ ! [X3: subst,X4: term,X5: subst,X6: subst] :
( ^ [X7: $o,X8: $o] :
( X7
=> X8 )
@ ( X1 @ ( comp @ X3 @ X6 ) @ ( sub @ X4 @ X6 ) @ X5 )
@ ( X1 @ X3 @ X4 @ ( comp @ X6 @ X5 ) ) )
@ ( ^ [X3: $o,X4: $o] :
( X3
=> X4 )
@ ! [X3: term] :
( ^ [X4: $o,X5: $o] :
( X4
=> X5 )
@ ( hoasvar @ id @ X3 @ id )
@ ( X1 @ id @ X3 @ id ) )
@ ( ^ [X3: $o,X4: $o] :
( X3
=> X4 )
@ ( hoasinduction_p_and_p_prime @ X1 @ X2 )
@ ! [X3: term] :
( ^ [X4: $o,X5: $o] :
( X4
=> X5 )
@ ( var @ X3 )
@ ( X2 @ X3 ) ) ) ) ) ) ) ) ).
thf(def_hoasinduction_lem1v2_gthm,definition,
( hoasinduction_lem1v2_gthm
= ( ^ [X1: $o,X2: $o] :
( X1
=> X2 )
@ axapp
@ ( ^ [X1: $o,X2: $o] :
( X1
=> X2 )
@ axvarcons
@ ( ^ [X1: $o,X2: $o] :
( X1
=> X2 )
@ axvarid
@ ( ^ [X1: $o,X2: $o] :
( X1
=> X2 )
@ axabs
@ ( ^ [X1: $o,X2: $o] :
( X1
=> X2 )
@ axclos
@ ( ^ [X1: $o,X2: $o] :
( X1
=> X2 )
@ axidl
@ ( ^ [X1: $o,X2: $o] :
( X1
=> X2 )
@ axshiftcons
@ ( ^ [X1: $o,X2: $o] :
( X1
=> X2 )
@ axassoc
@ ( ^ [X1: $o,X2: $o] :
( X1
=> X2 )
@ axmap
@ ( ^ [X1: $o,X2: $o] :
( X1
=> X2 )
@ axidr
@ ( ^ [X1: $o,X2: $o] :
( X1
=> X2 )
@ axvarshift
@ ( ^ [X1: $o,X2: $o] :
( X1
=> X2 )
@ axscons
@ ( ^ [X1: $o,X2: $o] :
( X1
=> X2 )
@ ulamvar1
@ ( ^ [X1: $o,X2: $o] :
( X1
=> X2 )
@ ulamvarsh
@ ( ^ [X1: $o,X2: $o] :
( X1
=> X2 )
@ ulamvarind
@ ( ^ [X1: $o,X2: $o] :
( X1
=> X2 )
@ apinj1
@ ( ^ [X1: $o,X2: $o] :
( X1
=> X2 )
@ apinj2
@ ( ^ [X1: $o,X2: $o] :
( X1
=> X2 )
@ laminj
@ ( ^ [X1: $o,X2: $o] :
( X1
=> X2 )
@ shinj
@ ( ^ [X1: $o,X2: $o] :
( X1
=> X2 )
@ lamnotap
@ ( ^ [X1: $o,X2: $o] :
( X1
=> X2 )
@ apnotvar
@ ( ^ [X1: $o,X2: $o] :
( X1
=> X2 )
@ lamnotvar
@ ( ^ [X1: $o,X2: $o] :
( X1
=> X2 )
@ induction
@ ( ^ [X1: $o,X2: $o] :
( X1
=> X2 )
@ pushprop
@ ( ^ [X1: $o,X2: $o] :
( X1
=> X2 )
@ induction2lem
@ ( ^ [X1: $o,X2: $o] :
( X1
=> X2 )
@ induction2
@ ( ^ [X1: $o,X2: $o] :
( X1
=> X2 )
@ substmonoid
@ ( ^ [X1: $o,X2: $o] :
( X1
=> X2 )
@ termmset
@ ( ^ [X1: $o,X2: $o] :
( X1
=> X2 )
@ hoasapinj1
@ ( ^ [X1: $o,X2: $o] :
( X1
=> X2 )
@ hoasapinj2
@ ( ^ [X1: $o,X2: $o] :
( X1
=> X2 )
@ hoaslaminj
@ ( ^ [X1: $o,X2: $o] :
( X1
=> X2 )
@ hoaslamnotap
@ ( ^ [X1: $o,X2: $o] :
( X1
=> X2 )
@ hoaslamnotvar
@ ( ^ [X1: $o,X2: $o] :
( X1
=> X2 )
@ hoasapnotvar
@ hoasinduction_lem1v2 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ).
thf(thm,conjecture,
( ! [X1: term,X2: term,X3: subst] :
( ( sub @ ( ap @ X1 @ X2 ) @ X3 )
= ( ap @ ( sub @ X1 @ X3 ) @ ( sub @ X2 @ X3 ) ) )
=> ( ! [X1: term,X2: subst] :
( ( sub @ one @ ( push @ X1 @ X2 ) )
= X1 )
=> ( sP6
=> ( ! [X1: term,X2: subst] :
( ( sub @ ( lam @ X1 ) @ X2 )
= ( lam @ ( sub @ X1 @ ( push @ one @ ( comp @ X2 @ sh ) ) ) ) )
=> ( ! [X1: term,X2: subst,X3: subst] :
( ( sub @ ( sub @ X1 @ X2 ) @ X3 )
= ( sub @ X1 @ ( comp @ X2 @ X3 ) ) )
=> ( ! [X1: subst] :
( ( comp @ id @ X1 )
= X1 )
=> ( ! [X1: term,X2: subst] :
( ( comp @ sh @ ( push @ X1 @ X2 ) )
= X2 )
=> ( ! [X1: subst,X2: subst,X3: subst] :
( ( comp @ ( comp @ X1 @ X2 ) @ X3 )
= ( comp @ X1 @ ( comp @ X2 @ X3 ) ) )
=> ( ! [X1: term,X2: subst,X3: subst] :
( ( comp @ ( push @ X1 @ X2 ) @ X3 )
= ( push @ ( sub @ X1 @ X3 ) @ ( comp @ X2 @ X3 ) ) )
=> ( ! [X1: subst] :
( ( comp @ X1 @ id )
= X1 )
=> ( ( ( push @ one @ sh )
= id )
=> ( ! [X1: subst] :
( ( push @ ( sub @ one @ X1 ) @ ( comp @ sh @ X1 ) )
= X1 )
=> ( ( var @ one )
=> ( ! [X1: term] :
( ( var @ X1 )
=> ( var @ ( sub @ X1 @ sh ) ) )
=> ( ! [X1: term > $o] :
( ( X1 @ one )
=> ( ! [X2: term] :
( ( var @ X2 )
=> ( ( X1 @ X2 )
=> ( X1 @ ( sub @ X2 @ sh ) ) ) )
=> ! [X2: term] :
( ( var @ X2 )
=> ( X1 @ X2 ) ) ) )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ X1 @ X3 )
= ( ap @ X2 @ X4 ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ X1 @ X3 )
= ( ap @ X2 @ X4 ) )
=> ( X3 = X4 ) )
=> ( ! [X1: term,X2: term] :
( ( ( lam @ X1 )
= ( lam @ X2 ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term] :
( ( ( sub @ X1 @ sh )
= ( sub @ X2 @ sh ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term,X3: term] :
( ( lam @ X1 )
!= ( ap @ X2 @ X3 ) )
=> ( ! [X1: term,X2: term] :
~ ( var @ ( ap @ X1 @ X2 ) )
=> ( ! [X1: term] :
~ ( var @ ( lam @ X1 ) )
=> ( ! [X1: term > $o] :
( ! [X2: term] :
( ( var @ X2 )
=> ( X1 @ X2 ) )
=> ( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ( X1 @ X2 )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term] : ( X1 @ X2 ) ) ) )
=> ( ! [X1: term > $o,X2: term,X3: subst] :
( ! [X4: term] :
( ( var @ X4 )
=> ( X1 @ ( sub @ X4 @ X3 ) ) )
=> ( ( X1 @ X2 )
=> ! [X4: term] :
( ( var @ X4 )
=> ( X1 @ ( sub @ X4 @ ( push @ X2 @ X3 ) ) ) ) ) )
=> ( ! [X1: term > $o] :
( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ! [X3: term] :
( ( X1 @ X3 )
=> ( X1 @ ( sub @ X2 @ ( push @ X3 @ id ) ) ) )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term,X3: subst] :
( ! [X4: term] :
( ( var @ X4 )
=> ( X1 @ ( sub @ X4 @ X3 ) ) )
=> ( X1 @ ( sub @ X2 @ X3 ) ) ) ) )
=> ( ! [X1: term > $o] :
( ! [X2: term] :
( ( var @ X2 )
=> ( X1 @ X2 ) )
=> ( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ! [X3: term] :
( ( X1 @ X3 )
=> ( X1 @ ( sub @ X2 @ ( push @ X3 @ id ) ) ) )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term] : ( X1 @ X2 ) ) ) )
=> ( ~ ( ~ ( ! [X1: subst,X2: subst,X3: subst] :
( ( comp @ ( comp @ X1 @ X2 ) @ X3 )
= ( comp @ X1 @ ( comp @ X2 @ X3 ) ) )
=> ~ ! [X1: subst] :
( ( comp @ id @ X1 )
= X1 ) )
=> ~ ! [X1: subst] :
( ( comp @ X1 @ id )
= X1 ) )
=> ( ~ ( ! [X1: term,X2: subst,X3: subst] :
( ( sub @ ( sub @ X1 @ X2 ) @ X3 )
= ( sub @ X1 @ ( comp @ X2 @ X3 ) ) )
=> ~ sP6 )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ ( sub @ X1 @ id ) @ X3 )
= ( ap @ ( sub @ X2 @ id ) @ X4 ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ ( sub @ X1 @ id ) @ X3 )
= ( ap @ ( sub @ X2 @ id ) @ X4 ) )
=> ( X3 = X4 ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ! [X2: subst > term > term] :
( ! [X3: subst,X4: term,X5: subst] :
( ( sub @ ( X2 @ X3 @ X4 ) @ X5 )
= ( X2 @ ( comp @ X3 @ X5 ) @ ( sub @ X4 @ X5 ) ) )
=> ( ( ( lam @ ( X1 @ sh @ one ) )
= ( lam @ ( X2 @ sh @ one ) ) )
=> ! [X3: subst,X4: term] :
( ( X1 @ X3 @ X4 )
= ( X2 @ X3 @ X4 ) ) ) ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ! [X2: term,X3: term] :
( ( lam @ ( X1 @ sh @ one ) )
!= ( ap @ ( sub @ X2 @ id ) @ X3 ) ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ~ ( var @ ( sub @ ( lam @ ( X1 @ sh @ one ) ) @ id ) ) )
=> ( ! [X1: term,X2: term] :
~ ( var @ ( sub @ ( ap @ ( sub @ X1 @ id ) @ X2 ) @ id ) )
=> ! [X1: subst > term > subst > $o,X2: term > $o] :
( ! [X3: subst,X4: term,X5: subst,X6: subst] :
( ( X1 @ X3 @ X4 @ ( comp @ X6 @ X5 ) )
=> ( X1 @ ( comp @ X3 @ X6 ) @ ( sub @ X4 @ X6 ) @ X5 ) )
=> ( ! [X3: subst,X4: term,X5: subst,X6: subst] :
( ( X1 @ ( comp @ X3 @ X6 ) @ ( sub @ X4 @ X6 ) @ X5 )
=> ( X1 @ X3 @ X4 @ ( comp @ X6 @ X5 ) ) )
=> ( ! [X3: term] :
( ( var @ ( sub @ X3 @ id ) )
=> ( X1 @ id @ X3 @ id ) )
=> ( ! [X3: term] :
( ( X2 @ X3 )
= ( X1 @ id @ X3 @ id ) )
=> ! [X3: term] :
( ( var @ X3 )
=> ( X2 @ X3 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ).
thf(h0,negated_conjecture,
~ ( ! [X1: term,X2: term,X3: subst] :
( ( sub @ ( ap @ X1 @ X2 ) @ X3 )
= ( ap @ ( sub @ X1 @ X3 ) @ ( sub @ X2 @ X3 ) ) )
=> ( ! [X1: term,X2: subst] :
( ( sub @ one @ ( push @ X1 @ X2 ) )
= X1 )
=> ( sP6
=> ( ! [X1: term,X2: subst] :
( ( sub @ ( lam @ X1 ) @ X2 )
= ( lam @ ( sub @ X1 @ ( push @ one @ ( comp @ X2 @ sh ) ) ) ) )
=> ( ! [X1: term,X2: subst,X3: subst] :
( ( sub @ ( sub @ X1 @ X2 ) @ X3 )
= ( sub @ X1 @ ( comp @ X2 @ X3 ) ) )
=> ( ! [X1: subst] :
( ( comp @ id @ X1 )
= X1 )
=> ( ! [X1: term,X2: subst] :
( ( comp @ sh @ ( push @ X1 @ X2 ) )
= X2 )
=> ( ! [X1: subst,X2: subst,X3: subst] :
( ( comp @ ( comp @ X1 @ X2 ) @ X3 )
= ( comp @ X1 @ ( comp @ X2 @ X3 ) ) )
=> ( ! [X1: term,X2: subst,X3: subst] :
( ( comp @ ( push @ X1 @ X2 ) @ X3 )
= ( push @ ( sub @ X1 @ X3 ) @ ( comp @ X2 @ X3 ) ) )
=> ( ! [X1: subst] :
( ( comp @ X1 @ id )
= X1 )
=> ( ( ( push @ one @ sh )
= id )
=> ( ! [X1: subst] :
( ( push @ ( sub @ one @ X1 ) @ ( comp @ sh @ X1 ) )
= X1 )
=> ( ( var @ one )
=> ( ! [X1: term] :
( ( var @ X1 )
=> ( var @ ( sub @ X1 @ sh ) ) )
=> ( ! [X1: term > $o] :
( ( X1 @ one )
=> ( ! [X2: term] :
( ( var @ X2 )
=> ( ( X1 @ X2 )
=> ( X1 @ ( sub @ X2 @ sh ) ) ) )
=> ! [X2: term] :
( ( var @ X2 )
=> ( X1 @ X2 ) ) ) )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ X1 @ X3 )
= ( ap @ X2 @ X4 ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ X1 @ X3 )
= ( ap @ X2 @ X4 ) )
=> ( X3 = X4 ) )
=> ( ! [X1: term,X2: term] :
( ( ( lam @ X1 )
= ( lam @ X2 ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term] :
( ( ( sub @ X1 @ sh )
= ( sub @ X2 @ sh ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term,X3: term] :
( ( lam @ X1 )
!= ( ap @ X2 @ X3 ) )
=> ( ! [X1: term,X2: term] :
~ ( var @ ( ap @ X1 @ X2 ) )
=> ( ! [X1: term] :
~ ( var @ ( lam @ X1 ) )
=> ( ! [X1: term > $o] :
( ! [X2: term] :
( ( var @ X2 )
=> ( X1 @ X2 ) )
=> ( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ( X1 @ X2 )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term] : ( X1 @ X2 ) ) ) )
=> ( ! [X1: term > $o,X2: term,X3: subst] :
( ! [X4: term] :
( ( var @ X4 )
=> ( X1 @ ( sub @ X4 @ X3 ) ) )
=> ( ( X1 @ X2 )
=> ! [X4: term] :
( ( var @ X4 )
=> ( X1 @ ( sub @ X4 @ ( push @ X2 @ X3 ) ) ) ) ) )
=> ( ! [X1: term > $o] :
( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ! [X3: term] :
( ( X1 @ X3 )
=> ( X1 @ ( sub @ X2 @ ( push @ X3 @ id ) ) ) )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term,X3: subst] :
( ! [X4: term] :
( ( var @ X4 )
=> ( X1 @ ( sub @ X4 @ X3 ) ) )
=> ( X1 @ ( sub @ X2 @ X3 ) ) ) ) )
=> ( ! [X1: term > $o] :
( ! [X2: term] :
( ( var @ X2 )
=> ( X1 @ X2 ) )
=> ( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ! [X3: term] :
( ( X1 @ X3 )
=> ( X1 @ ( sub @ X2 @ ( push @ X3 @ id ) ) ) )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term] : ( X1 @ X2 ) ) ) )
=> ( ~ ( ~ ( ! [X1: subst,X2: subst,X3: subst] :
( ( comp @ ( comp @ X1 @ X2 ) @ X3 )
= ( comp @ X1 @ ( comp @ X2 @ X3 ) ) )
=> ~ ! [X1: subst] :
( ( comp @ id @ X1 )
= X1 ) )
=> ~ ! [X1: subst] :
( ( comp @ X1 @ id )
= X1 ) )
=> ( ~ ( ! [X1: term,X2: subst,X3: subst] :
( ( sub @ ( sub @ X1 @ X2 ) @ X3 )
= ( sub @ X1 @ ( comp @ X2 @ X3 ) ) )
=> ~ sP6 )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ ( sub @ X1 @ id ) @ X3 )
= ( ap @ ( sub @ X2 @ id ) @ X4 ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ ( sub @ X1 @ id ) @ X3 )
= ( ap @ ( sub @ X2 @ id ) @ X4 ) )
=> ( X3 = X4 ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ! [X2: subst > term > term] :
( ! [X3: subst,X4: term,X5: subst] :
( ( sub @ ( X2 @ X3 @ X4 ) @ X5 )
= ( X2 @ ( comp @ X3 @ X5 ) @ ( sub @ X4 @ X5 ) ) )
=> ( ( ( lam @ ( X1 @ sh @ one ) )
= ( lam @ ( X2 @ sh @ one ) ) )
=> ! [X3: subst,X4: term] :
( ( X1 @ X3 @ X4 )
= ( X2 @ X3 @ X4 ) ) ) ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ! [X2: term,X3: term] :
( ( lam @ ( X1 @ sh @ one ) )
!= ( ap @ ( sub @ X2 @ id ) @ X3 ) ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ~ ( var @ ( sub @ ( lam @ ( X1 @ sh @ one ) ) @ id ) ) )
=> ( ! [X1: term,X2: term] :
~ ( var @ ( sub @ ( ap @ ( sub @ X1 @ id ) @ X2 ) @ id ) )
=> ! [X1: subst > term > subst > $o,X2: term > $o] :
( ! [X3: subst,X4: term,X5: subst,X6: subst] :
( ( X1 @ X3 @ X4 @ ( comp @ X6 @ X5 ) )
=> ( X1 @ ( comp @ X3 @ X6 ) @ ( sub @ X4 @ X6 ) @ X5 ) )
=> ( ! [X3: subst,X4: term,X5: subst,X6: subst] :
( ( X1 @ ( comp @ X3 @ X6 ) @ ( sub @ X4 @ X6 ) @ X5 )
=> ( X1 @ X3 @ X4 @ ( comp @ X6 @ X5 ) ) )
=> ( ! [X3: term] :
( ( var @ ( sub @ X3 @ id ) )
=> ( X1 @ id @ X3 @ id ) )
=> ( ! [X3: term] :
( ( X2 @ X3 )
= ( X1 @ id @ X3 @ id ) )
=> ! [X3: term] :
( ( var @ X3 )
=> ( X2 @ X3 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
inference(assume_negation,[status(cth)],[thm]) ).
thf(h1,assumption,
! [X1: term,X2: term,X3: subst] :
( ( sub @ ( ap @ X1 @ X2 ) @ X3 )
= ( ap @ ( sub @ X1 @ X3 ) @ ( sub @ X2 @ X3 ) ) ),
introduced(assumption,[]) ).
thf(h2,assumption,
~ ( ! [X1: term,X2: subst] :
( ( sub @ one @ ( push @ X1 @ X2 ) )
= X1 )
=> ( sP6
=> ( ! [X1: term,X2: subst] :
( ( sub @ ( lam @ X1 ) @ X2 )
= ( lam @ ( sub @ X1 @ ( push @ one @ ( comp @ X2 @ sh ) ) ) ) )
=> ( ! [X1: term,X2: subst,X3: subst] :
( ( sub @ ( sub @ X1 @ X2 ) @ X3 )
= ( sub @ X1 @ ( comp @ X2 @ X3 ) ) )
=> ( ! [X1: subst] :
( ( comp @ id @ X1 )
= X1 )
=> ( ! [X1: term,X2: subst] :
( ( comp @ sh @ ( push @ X1 @ X2 ) )
= X2 )
=> ( ! [X1: subst,X2: subst,X3: subst] :
( ( comp @ ( comp @ X1 @ X2 ) @ X3 )
= ( comp @ X1 @ ( comp @ X2 @ X3 ) ) )
=> ( ! [X1: term,X2: subst,X3: subst] :
( ( comp @ ( push @ X1 @ X2 ) @ X3 )
= ( push @ ( sub @ X1 @ X3 ) @ ( comp @ X2 @ X3 ) ) )
=> ( ! [X1: subst] :
( ( comp @ X1 @ id )
= X1 )
=> ( ( ( push @ one @ sh )
= id )
=> ( ! [X1: subst] :
( ( push @ ( sub @ one @ X1 ) @ ( comp @ sh @ X1 ) )
= X1 )
=> ( ( var @ one )
=> ( ! [X1: term] :
( ( var @ X1 )
=> ( var @ ( sub @ X1 @ sh ) ) )
=> ( ! [X1: term > $o] :
( ( X1 @ one )
=> ( ! [X2: term] :
( ( var @ X2 )
=> ( ( X1 @ X2 )
=> ( X1 @ ( sub @ X2 @ sh ) ) ) )
=> ! [X2: term] :
( ( var @ X2 )
=> ( X1 @ X2 ) ) ) )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ X1 @ X3 )
= ( ap @ X2 @ X4 ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ X1 @ X3 )
= ( ap @ X2 @ X4 ) )
=> ( X3 = X4 ) )
=> ( ! [X1: term,X2: term] :
( ( ( lam @ X1 )
= ( lam @ X2 ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term] :
( ( ( sub @ X1 @ sh )
= ( sub @ X2 @ sh ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term,X3: term] :
( ( lam @ X1 )
!= ( ap @ X2 @ X3 ) )
=> ( ! [X1: term,X2: term] :
~ ( var @ ( ap @ X1 @ X2 ) )
=> ( ! [X1: term] :
~ ( var @ ( lam @ X1 ) )
=> ( ! [X1: term > $o] :
( ! [X2: term] :
( ( var @ X2 )
=> ( X1 @ X2 ) )
=> ( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ( X1 @ X2 )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term] : ( X1 @ X2 ) ) ) )
=> ( ! [X1: term > $o,X2: term,X3: subst] :
( ! [X4: term] :
( ( var @ X4 )
=> ( X1 @ ( sub @ X4 @ X3 ) ) )
=> ( ( X1 @ X2 )
=> ! [X4: term] :
( ( var @ X4 )
=> ( X1 @ ( sub @ X4 @ ( push @ X2 @ X3 ) ) ) ) ) )
=> ( ! [X1: term > $o] :
( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ! [X3: term] :
( ( X1 @ X3 )
=> ( X1 @ ( sub @ X2 @ ( push @ X3 @ id ) ) ) )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term,X3: subst] :
( ! [X4: term] :
( ( var @ X4 )
=> ( X1 @ ( sub @ X4 @ X3 ) ) )
=> ( X1 @ ( sub @ X2 @ X3 ) ) ) ) )
=> ( ! [X1: term > $o] :
( ! [X2: term] :
( ( var @ X2 )
=> ( X1 @ X2 ) )
=> ( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ! [X3: term] :
( ( X1 @ X3 )
=> ( X1 @ ( sub @ X2 @ ( push @ X3 @ id ) ) ) )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term] : ( X1 @ X2 ) ) ) )
=> ( ~ ( ~ ( ! [X1: subst,X2: subst,X3: subst] :
( ( comp @ ( comp @ X1 @ X2 ) @ X3 )
= ( comp @ X1 @ ( comp @ X2 @ X3 ) ) )
=> ~ ! [X1: subst] :
( ( comp @ id @ X1 )
= X1 ) )
=> ~ ! [X1: subst] :
( ( comp @ X1 @ id )
= X1 ) )
=> ( ~ ( ! [X1: term,X2: subst,X3: subst] :
( ( sub @ ( sub @ X1 @ X2 ) @ X3 )
= ( sub @ X1 @ ( comp @ X2 @ X3 ) ) )
=> ~ sP6 )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ ( sub @ X1 @ id ) @ X3 )
= ( ap @ ( sub @ X2 @ id ) @ X4 ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ ( sub @ X1 @ id ) @ X3 )
= ( ap @ ( sub @ X2 @ id ) @ X4 ) )
=> ( X3 = X4 ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ! [X2: subst > term > term] :
( ! [X3: subst,X4: term,X5: subst] :
( ( sub @ ( X2 @ X3 @ X4 ) @ X5 )
= ( X2 @ ( comp @ X3 @ X5 ) @ ( sub @ X4 @ X5 ) ) )
=> ( ( ( lam @ ( X1 @ sh @ one ) )
= ( lam @ ( X2 @ sh @ one ) ) )
=> ! [X3: subst,X4: term] :
( ( X1 @ X3 @ X4 )
= ( X2 @ X3 @ X4 ) ) ) ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ! [X2: term,X3: term] :
( ( lam @ ( X1 @ sh @ one ) )
!= ( ap @ ( sub @ X2 @ id ) @ X3 ) ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ~ ( var @ ( sub @ ( lam @ ( X1 @ sh @ one ) ) @ id ) ) )
=> ( ! [X1: term,X2: term] :
~ ( var @ ( sub @ ( ap @ ( sub @ X1 @ id ) @ X2 ) @ id ) )
=> ! [X1: subst > term > subst > $o,X2: term > $o] :
( ! [X3: subst,X4: term,X5: subst,X6: subst] :
( ( X1 @ X3 @ X4 @ ( comp @ X6 @ X5 ) )
=> ( X1 @ ( comp @ X3 @ X6 ) @ ( sub @ X4 @ X6 ) @ X5 ) )
=> ( ! [X3: subst,X4: term,X5: subst,X6: subst] :
( ( X1 @ ( comp @ X3 @ X6 ) @ ( sub @ X4 @ X6 ) @ X5 )
=> ( X1 @ X3 @ X4 @ ( comp @ X6 @ X5 ) ) )
=> ( ! [X3: term] :
( ( var @ ( sub @ X3 @ id ) )
=> ( X1 @ id @ X3 @ id ) )
=> ( ! [X3: term] :
( ( X2 @ X3 )
= ( X1 @ id @ X3 @ id ) )
=> ! [X3: term] :
( ( var @ X3 )
=> ( X2 @ X3 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
introduced(assumption,[]) ).
thf(h3,assumption,
! [X1: term,X2: subst] :
( ( sub @ one @ ( push @ X1 @ X2 ) )
= X1 ),
introduced(assumption,[]) ).
thf(h4,assumption,
~ ( sP6
=> ( ! [X1: term,X2: subst] :
( ( sub @ ( lam @ X1 ) @ X2 )
= ( lam @ ( sub @ X1 @ ( push @ one @ ( comp @ X2 @ sh ) ) ) ) )
=> ( ! [X1: term,X2: subst,X3: subst] :
( ( sub @ ( sub @ X1 @ X2 ) @ X3 )
= ( sub @ X1 @ ( comp @ X2 @ X3 ) ) )
=> ( ! [X1: subst] :
( ( comp @ id @ X1 )
= X1 )
=> ( ! [X1: term,X2: subst] :
( ( comp @ sh @ ( push @ X1 @ X2 ) )
= X2 )
=> ( ! [X1: subst,X2: subst,X3: subst] :
( ( comp @ ( comp @ X1 @ X2 ) @ X3 )
= ( comp @ X1 @ ( comp @ X2 @ X3 ) ) )
=> ( ! [X1: term,X2: subst,X3: subst] :
( ( comp @ ( push @ X1 @ X2 ) @ X3 )
= ( push @ ( sub @ X1 @ X3 ) @ ( comp @ X2 @ X3 ) ) )
=> ( ! [X1: subst] :
( ( comp @ X1 @ id )
= X1 )
=> ( ( ( push @ one @ sh )
= id )
=> ( ! [X1: subst] :
( ( push @ ( sub @ one @ X1 ) @ ( comp @ sh @ X1 ) )
= X1 )
=> ( ( var @ one )
=> ( ! [X1: term] :
( ( var @ X1 )
=> ( var @ ( sub @ X1 @ sh ) ) )
=> ( ! [X1: term > $o] :
( ( X1 @ one )
=> ( ! [X2: term] :
( ( var @ X2 )
=> ( ( X1 @ X2 )
=> ( X1 @ ( sub @ X2 @ sh ) ) ) )
=> ! [X2: term] :
( ( var @ X2 )
=> ( X1 @ X2 ) ) ) )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ X1 @ X3 )
= ( ap @ X2 @ X4 ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ X1 @ X3 )
= ( ap @ X2 @ X4 ) )
=> ( X3 = X4 ) )
=> ( ! [X1: term,X2: term] :
( ( ( lam @ X1 )
= ( lam @ X2 ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term] :
( ( ( sub @ X1 @ sh )
= ( sub @ X2 @ sh ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term,X3: term] :
( ( lam @ X1 )
!= ( ap @ X2 @ X3 ) )
=> ( ! [X1: term,X2: term] :
~ ( var @ ( ap @ X1 @ X2 ) )
=> ( ! [X1: term] :
~ ( var @ ( lam @ X1 ) )
=> ( ! [X1: term > $o] :
( ! [X2: term] :
( ( var @ X2 )
=> ( X1 @ X2 ) )
=> ( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ( X1 @ X2 )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term] : ( X1 @ X2 ) ) ) )
=> ( ! [X1: term > $o,X2: term,X3: subst] :
( ! [X4: term] :
( ( var @ X4 )
=> ( X1 @ ( sub @ X4 @ X3 ) ) )
=> ( ( X1 @ X2 )
=> ! [X4: term] :
( ( var @ X4 )
=> ( X1 @ ( sub @ X4 @ ( push @ X2 @ X3 ) ) ) ) ) )
=> ( ! [X1: term > $o] :
( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ! [X3: term] :
( ( X1 @ X3 )
=> ( X1 @ ( sub @ X2 @ ( push @ X3 @ id ) ) ) )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term,X3: subst] :
( ! [X4: term] :
( ( var @ X4 )
=> ( X1 @ ( sub @ X4 @ X3 ) ) )
=> ( X1 @ ( sub @ X2 @ X3 ) ) ) ) )
=> ( ! [X1: term > $o] :
( ! [X2: term] :
( ( var @ X2 )
=> ( X1 @ X2 ) )
=> ( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ! [X3: term] :
( ( X1 @ X3 )
=> ( X1 @ ( sub @ X2 @ ( push @ X3 @ id ) ) ) )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term] : ( X1 @ X2 ) ) ) )
=> ( ~ ( ~ ( ! [X1: subst,X2: subst,X3: subst] :
( ( comp @ ( comp @ X1 @ X2 ) @ X3 )
= ( comp @ X1 @ ( comp @ X2 @ X3 ) ) )
=> ~ ! [X1: subst] :
( ( comp @ id @ X1 )
= X1 ) )
=> ~ ! [X1: subst] :
( ( comp @ X1 @ id )
= X1 ) )
=> ( ~ ( ! [X1: term,X2: subst,X3: subst] :
( ( sub @ ( sub @ X1 @ X2 ) @ X3 )
= ( sub @ X1 @ ( comp @ X2 @ X3 ) ) )
=> ~ sP6 )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ ( sub @ X1 @ id ) @ X3 )
= ( ap @ ( sub @ X2 @ id ) @ X4 ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ ( sub @ X1 @ id ) @ X3 )
= ( ap @ ( sub @ X2 @ id ) @ X4 ) )
=> ( X3 = X4 ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ! [X2: subst > term > term] :
( ! [X3: subst,X4: term,X5: subst] :
( ( sub @ ( X2 @ X3 @ X4 ) @ X5 )
= ( X2 @ ( comp @ X3 @ X5 ) @ ( sub @ X4 @ X5 ) ) )
=> ( ( ( lam @ ( X1 @ sh @ one ) )
= ( lam @ ( X2 @ sh @ one ) ) )
=> ! [X3: subst,X4: term] :
( ( X1 @ X3 @ X4 )
= ( X2 @ X3 @ X4 ) ) ) ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ! [X2: term,X3: term] :
( ( lam @ ( X1 @ sh @ one ) )
!= ( ap @ ( sub @ X2 @ id ) @ X3 ) ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ~ ( var @ ( sub @ ( lam @ ( X1 @ sh @ one ) ) @ id ) ) )
=> ( ! [X1: term,X2: term] :
~ ( var @ ( sub @ ( ap @ ( sub @ X1 @ id ) @ X2 ) @ id ) )
=> ! [X1: subst > term > subst > $o,X2: term > $o] :
( ! [X3: subst,X4: term,X5: subst,X6: subst] :
( ( X1 @ X3 @ X4 @ ( comp @ X6 @ X5 ) )
=> ( X1 @ ( comp @ X3 @ X6 ) @ ( sub @ X4 @ X6 ) @ X5 ) )
=> ( ! [X3: subst,X4: term,X5: subst,X6: subst] :
( ( X1 @ ( comp @ X3 @ X6 ) @ ( sub @ X4 @ X6 ) @ X5 )
=> ( X1 @ X3 @ X4 @ ( comp @ X6 @ X5 ) ) )
=> ( ! [X3: term] :
( ( var @ ( sub @ X3 @ id ) )
=> ( X1 @ id @ X3 @ id ) )
=> ( ! [X3: term] :
( ( X2 @ X3 )
= ( X1 @ id @ X3 @ id ) )
=> ! [X3: term] :
( ( var @ X3 )
=> ( X2 @ X3 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
introduced(assumption,[]) ).
thf(h5,assumption,
sP6,
introduced(assumption,[]) ).
thf(h6,assumption,
~ ( ! [X1: term,X2: subst] :
( ( sub @ ( lam @ X1 ) @ X2 )
= ( lam @ ( sub @ X1 @ ( push @ one @ ( comp @ X2 @ sh ) ) ) ) )
=> ( ! [X1: term,X2: subst,X3: subst] :
( ( sub @ ( sub @ X1 @ X2 ) @ X3 )
= ( sub @ X1 @ ( comp @ X2 @ X3 ) ) )
=> ( ! [X1: subst] :
( ( comp @ id @ X1 )
= X1 )
=> ( ! [X1: term,X2: subst] :
( ( comp @ sh @ ( push @ X1 @ X2 ) )
= X2 )
=> ( ! [X1: subst,X2: subst,X3: subst] :
( ( comp @ ( comp @ X1 @ X2 ) @ X3 )
= ( comp @ X1 @ ( comp @ X2 @ X3 ) ) )
=> ( ! [X1: term,X2: subst,X3: subst] :
( ( comp @ ( push @ X1 @ X2 ) @ X3 )
= ( push @ ( sub @ X1 @ X3 ) @ ( comp @ X2 @ X3 ) ) )
=> ( ! [X1: subst] :
( ( comp @ X1 @ id )
= X1 )
=> ( ( ( push @ one @ sh )
= id )
=> ( ! [X1: subst] :
( ( push @ ( sub @ one @ X1 ) @ ( comp @ sh @ X1 ) )
= X1 )
=> ( ( var @ one )
=> ( ! [X1: term] :
( ( var @ X1 )
=> ( var @ ( sub @ X1 @ sh ) ) )
=> ( ! [X1: term > $o] :
( ( X1 @ one )
=> ( ! [X2: term] :
( ( var @ X2 )
=> ( ( X1 @ X2 )
=> ( X1 @ ( sub @ X2 @ sh ) ) ) )
=> ! [X2: term] :
( ( var @ X2 )
=> ( X1 @ X2 ) ) ) )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ X1 @ X3 )
= ( ap @ X2 @ X4 ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ X1 @ X3 )
= ( ap @ X2 @ X4 ) )
=> ( X3 = X4 ) )
=> ( ! [X1: term,X2: term] :
( ( ( lam @ X1 )
= ( lam @ X2 ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term] :
( ( ( sub @ X1 @ sh )
= ( sub @ X2 @ sh ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term,X3: term] :
( ( lam @ X1 )
!= ( ap @ X2 @ X3 ) )
=> ( ! [X1: term,X2: term] :
~ ( var @ ( ap @ X1 @ X2 ) )
=> ( ! [X1: term] :
~ ( var @ ( lam @ X1 ) )
=> ( ! [X1: term > $o] :
( ! [X2: term] :
( ( var @ X2 )
=> ( X1 @ X2 ) )
=> ( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ( X1 @ X2 )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term] : ( X1 @ X2 ) ) ) )
=> ( ! [X1: term > $o,X2: term,X3: subst] :
( ! [X4: term] :
( ( var @ X4 )
=> ( X1 @ ( sub @ X4 @ X3 ) ) )
=> ( ( X1 @ X2 )
=> ! [X4: term] :
( ( var @ X4 )
=> ( X1 @ ( sub @ X4 @ ( push @ X2 @ X3 ) ) ) ) ) )
=> ( ! [X1: term > $o] :
( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ! [X3: term] :
( ( X1 @ X3 )
=> ( X1 @ ( sub @ X2 @ ( push @ X3 @ id ) ) ) )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term,X3: subst] :
( ! [X4: term] :
( ( var @ X4 )
=> ( X1 @ ( sub @ X4 @ X3 ) ) )
=> ( X1 @ ( sub @ X2 @ X3 ) ) ) ) )
=> ( ! [X1: term > $o] :
( ! [X2: term] :
( ( var @ X2 )
=> ( X1 @ X2 ) )
=> ( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ! [X3: term] :
( ( X1 @ X3 )
=> ( X1 @ ( sub @ X2 @ ( push @ X3 @ id ) ) ) )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term] : ( X1 @ X2 ) ) ) )
=> ( ~ ( ~ ( ! [X1: subst,X2: subst,X3: subst] :
( ( comp @ ( comp @ X1 @ X2 ) @ X3 )
= ( comp @ X1 @ ( comp @ X2 @ X3 ) ) )
=> ~ ! [X1: subst] :
( ( comp @ id @ X1 )
= X1 ) )
=> ~ ! [X1: subst] :
( ( comp @ X1 @ id )
= X1 ) )
=> ( ~ ( ! [X1: term,X2: subst,X3: subst] :
( ( sub @ ( sub @ X1 @ X2 ) @ X3 )
= ( sub @ X1 @ ( comp @ X2 @ X3 ) ) )
=> ~ sP6 )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ ( sub @ X1 @ id ) @ X3 )
= ( ap @ ( sub @ X2 @ id ) @ X4 ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ ( sub @ X1 @ id ) @ X3 )
= ( ap @ ( sub @ X2 @ id ) @ X4 ) )
=> ( X3 = X4 ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ! [X2: subst > term > term] :
( ! [X3: subst,X4: term,X5: subst] :
( ( sub @ ( X2 @ X3 @ X4 ) @ X5 )
= ( X2 @ ( comp @ X3 @ X5 ) @ ( sub @ X4 @ X5 ) ) )
=> ( ( ( lam @ ( X1 @ sh @ one ) )
= ( lam @ ( X2 @ sh @ one ) ) )
=> ! [X3: subst,X4: term] :
( ( X1 @ X3 @ X4 )
= ( X2 @ X3 @ X4 ) ) ) ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ! [X2: term,X3: term] :
( ( lam @ ( X1 @ sh @ one ) )
!= ( ap @ ( sub @ X2 @ id ) @ X3 ) ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ~ ( var @ ( sub @ ( lam @ ( X1 @ sh @ one ) ) @ id ) ) )
=> ( ! [X1: term,X2: term] :
~ ( var @ ( sub @ ( ap @ ( sub @ X1 @ id ) @ X2 ) @ id ) )
=> ! [X1: subst > term > subst > $o,X2: term > $o] :
( ! [X3: subst,X4: term,X5: subst,X6: subst] :
( ( X1 @ X3 @ X4 @ ( comp @ X6 @ X5 ) )
=> ( X1 @ ( comp @ X3 @ X6 ) @ ( sub @ X4 @ X6 ) @ X5 ) )
=> ( ! [X3: subst,X4: term,X5: subst,X6: subst] :
( ( X1 @ ( comp @ X3 @ X6 ) @ ( sub @ X4 @ X6 ) @ X5 )
=> ( X1 @ X3 @ X4 @ ( comp @ X6 @ X5 ) ) )
=> ( ! [X3: term] :
( ( var @ ( sub @ X3 @ id ) )
=> ( X1 @ id @ X3 @ id ) )
=> ( ! [X3: term] :
( ( X2 @ X3 )
= ( X1 @ id @ X3 @ id ) )
=> ! [X3: term] :
( ( var @ X3 )
=> ( X2 @ X3 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
introduced(assumption,[]) ).
thf(h7,assumption,
! [X1: term,X2: subst] :
( ( sub @ ( lam @ X1 ) @ X2 )
= ( lam @ ( sub @ X1 @ ( push @ one @ ( comp @ X2 @ sh ) ) ) ) ),
introduced(assumption,[]) ).
thf(h8,assumption,
~ ( ! [X1: term,X2: subst,X3: subst] :
( ( sub @ ( sub @ X1 @ X2 ) @ X3 )
= ( sub @ X1 @ ( comp @ X2 @ X3 ) ) )
=> ( ! [X1: subst] :
( ( comp @ id @ X1 )
= X1 )
=> ( ! [X1: term,X2: subst] :
( ( comp @ sh @ ( push @ X1 @ X2 ) )
= X2 )
=> ( ! [X1: subst,X2: subst,X3: subst] :
( ( comp @ ( comp @ X1 @ X2 ) @ X3 )
= ( comp @ X1 @ ( comp @ X2 @ X3 ) ) )
=> ( ! [X1: term,X2: subst,X3: subst] :
( ( comp @ ( push @ X1 @ X2 ) @ X3 )
= ( push @ ( sub @ X1 @ X3 ) @ ( comp @ X2 @ X3 ) ) )
=> ( ! [X1: subst] :
( ( comp @ X1 @ id )
= X1 )
=> ( ( ( push @ one @ sh )
= id )
=> ( ! [X1: subst] :
( ( push @ ( sub @ one @ X1 ) @ ( comp @ sh @ X1 ) )
= X1 )
=> ( ( var @ one )
=> ( ! [X1: term] :
( ( var @ X1 )
=> ( var @ ( sub @ X1 @ sh ) ) )
=> ( ! [X1: term > $o] :
( ( X1 @ one )
=> ( ! [X2: term] :
( ( var @ X2 )
=> ( ( X1 @ X2 )
=> ( X1 @ ( sub @ X2 @ sh ) ) ) )
=> ! [X2: term] :
( ( var @ X2 )
=> ( X1 @ X2 ) ) ) )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ X1 @ X3 )
= ( ap @ X2 @ X4 ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ X1 @ X3 )
= ( ap @ X2 @ X4 ) )
=> ( X3 = X4 ) )
=> ( ! [X1: term,X2: term] :
( ( ( lam @ X1 )
= ( lam @ X2 ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term] :
( ( ( sub @ X1 @ sh )
= ( sub @ X2 @ sh ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term,X3: term] :
( ( lam @ X1 )
!= ( ap @ X2 @ X3 ) )
=> ( ! [X1: term,X2: term] :
~ ( var @ ( ap @ X1 @ X2 ) )
=> ( ! [X1: term] :
~ ( var @ ( lam @ X1 ) )
=> ( ! [X1: term > $o] :
( ! [X2: term] :
( ( var @ X2 )
=> ( X1 @ X2 ) )
=> ( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ( X1 @ X2 )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term] : ( X1 @ X2 ) ) ) )
=> ( ! [X1: term > $o,X2: term,X3: subst] :
( ! [X4: term] :
( ( var @ X4 )
=> ( X1 @ ( sub @ X4 @ X3 ) ) )
=> ( ( X1 @ X2 )
=> ! [X4: term] :
( ( var @ X4 )
=> ( X1 @ ( sub @ X4 @ ( push @ X2 @ X3 ) ) ) ) ) )
=> ( ! [X1: term > $o] :
( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ! [X3: term] :
( ( X1 @ X3 )
=> ( X1 @ ( sub @ X2 @ ( push @ X3 @ id ) ) ) )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term,X3: subst] :
( ! [X4: term] :
( ( var @ X4 )
=> ( X1 @ ( sub @ X4 @ X3 ) ) )
=> ( X1 @ ( sub @ X2 @ X3 ) ) ) ) )
=> ( ! [X1: term > $o] :
( ! [X2: term] :
( ( var @ X2 )
=> ( X1 @ X2 ) )
=> ( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ! [X3: term] :
( ( X1 @ X3 )
=> ( X1 @ ( sub @ X2 @ ( push @ X3 @ id ) ) ) )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term] : ( X1 @ X2 ) ) ) )
=> ( ~ ( ~ ( ! [X1: subst,X2: subst,X3: subst] :
( ( comp @ ( comp @ X1 @ X2 ) @ X3 )
= ( comp @ X1 @ ( comp @ X2 @ X3 ) ) )
=> ~ ! [X1: subst] :
( ( comp @ id @ X1 )
= X1 ) )
=> ~ ! [X1: subst] :
( ( comp @ X1 @ id )
= X1 ) )
=> ( ~ ( ! [X1: term,X2: subst,X3: subst] :
( ( sub @ ( sub @ X1 @ X2 ) @ X3 )
= ( sub @ X1 @ ( comp @ X2 @ X3 ) ) )
=> ~ sP6 )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ ( sub @ X1 @ id ) @ X3 )
= ( ap @ ( sub @ X2 @ id ) @ X4 ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ ( sub @ X1 @ id ) @ X3 )
= ( ap @ ( sub @ X2 @ id ) @ X4 ) )
=> ( X3 = X4 ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ! [X2: subst > term > term] :
( ! [X3: subst,X4: term,X5: subst] :
( ( sub @ ( X2 @ X3 @ X4 ) @ X5 )
= ( X2 @ ( comp @ X3 @ X5 ) @ ( sub @ X4 @ X5 ) ) )
=> ( ( ( lam @ ( X1 @ sh @ one ) )
= ( lam @ ( X2 @ sh @ one ) ) )
=> ! [X3: subst,X4: term] :
( ( X1 @ X3 @ X4 )
= ( X2 @ X3 @ X4 ) ) ) ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ! [X2: term,X3: term] :
( ( lam @ ( X1 @ sh @ one ) )
!= ( ap @ ( sub @ X2 @ id ) @ X3 ) ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ~ ( var @ ( sub @ ( lam @ ( X1 @ sh @ one ) ) @ id ) ) )
=> ( ! [X1: term,X2: term] :
~ ( var @ ( sub @ ( ap @ ( sub @ X1 @ id ) @ X2 ) @ id ) )
=> ! [X1: subst > term > subst > $o,X2: term > $o] :
( ! [X3: subst,X4: term,X5: subst,X6: subst] :
( ( X1 @ X3 @ X4 @ ( comp @ X6 @ X5 ) )
=> ( X1 @ ( comp @ X3 @ X6 ) @ ( sub @ X4 @ X6 ) @ X5 ) )
=> ( ! [X3: subst,X4: term,X5: subst,X6: subst] :
( ( X1 @ ( comp @ X3 @ X6 ) @ ( sub @ X4 @ X6 ) @ X5 )
=> ( X1 @ X3 @ X4 @ ( comp @ X6 @ X5 ) ) )
=> ( ! [X3: term] :
( ( var @ ( sub @ X3 @ id ) )
=> ( X1 @ id @ X3 @ id ) )
=> ( ! [X3: term] :
( ( X2 @ X3 )
= ( X1 @ id @ X3 @ id ) )
=> ! [X3: term] :
( ( var @ X3 )
=> ( X2 @ X3 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
introduced(assumption,[]) ).
thf(h9,assumption,
! [X1: term,X2: subst,X3: subst] :
( ( sub @ ( sub @ X1 @ X2 ) @ X3 )
= ( sub @ X1 @ ( comp @ X2 @ X3 ) ) ),
introduced(assumption,[]) ).
thf(h10,assumption,
~ ( ! [X1: subst] :
( ( comp @ id @ X1 )
= X1 )
=> ( ! [X1: term,X2: subst] :
( ( comp @ sh @ ( push @ X1 @ X2 ) )
= X2 )
=> ( ! [X1: subst,X2: subst,X3: subst] :
( ( comp @ ( comp @ X1 @ X2 ) @ X3 )
= ( comp @ X1 @ ( comp @ X2 @ X3 ) ) )
=> ( ! [X1: term,X2: subst,X3: subst] :
( ( comp @ ( push @ X1 @ X2 ) @ X3 )
= ( push @ ( sub @ X1 @ X3 ) @ ( comp @ X2 @ X3 ) ) )
=> ( ! [X1: subst] :
( ( comp @ X1 @ id )
= X1 )
=> ( ( ( push @ one @ sh )
= id )
=> ( ! [X1: subst] :
( ( push @ ( sub @ one @ X1 ) @ ( comp @ sh @ X1 ) )
= X1 )
=> ( ( var @ one )
=> ( ! [X1: term] :
( ( var @ X1 )
=> ( var @ ( sub @ X1 @ sh ) ) )
=> ( ! [X1: term > $o] :
( ( X1 @ one )
=> ( ! [X2: term] :
( ( var @ X2 )
=> ( ( X1 @ X2 )
=> ( X1 @ ( sub @ X2 @ sh ) ) ) )
=> ! [X2: term] :
( ( var @ X2 )
=> ( X1 @ X2 ) ) ) )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ X1 @ X3 )
= ( ap @ X2 @ X4 ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ X1 @ X3 )
= ( ap @ X2 @ X4 ) )
=> ( X3 = X4 ) )
=> ( ! [X1: term,X2: term] :
( ( ( lam @ X1 )
= ( lam @ X2 ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term] :
( ( ( sub @ X1 @ sh )
= ( sub @ X2 @ sh ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term,X3: term] :
( ( lam @ X1 )
!= ( ap @ X2 @ X3 ) )
=> ( ! [X1: term,X2: term] :
~ ( var @ ( ap @ X1 @ X2 ) )
=> ( ! [X1: term] :
~ ( var @ ( lam @ X1 ) )
=> ( ! [X1: term > $o] :
( ! [X2: term] :
( ( var @ X2 )
=> ( X1 @ X2 ) )
=> ( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ( X1 @ X2 )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term] : ( X1 @ X2 ) ) ) )
=> ( ! [X1: term > $o,X2: term,X3: subst] :
( ! [X4: term] :
( ( var @ X4 )
=> ( X1 @ ( sub @ X4 @ X3 ) ) )
=> ( ( X1 @ X2 )
=> ! [X4: term] :
( ( var @ X4 )
=> ( X1 @ ( sub @ X4 @ ( push @ X2 @ X3 ) ) ) ) ) )
=> ( ! [X1: term > $o] :
( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ! [X3: term] :
( ( X1 @ X3 )
=> ( X1 @ ( sub @ X2 @ ( push @ X3 @ id ) ) ) )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term,X3: subst] :
( ! [X4: term] :
( ( var @ X4 )
=> ( X1 @ ( sub @ X4 @ X3 ) ) )
=> ( X1 @ ( sub @ X2 @ X3 ) ) ) ) )
=> ( ! [X1: term > $o] :
( ! [X2: term] :
( ( var @ X2 )
=> ( X1 @ X2 ) )
=> ( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ! [X3: term] :
( ( X1 @ X3 )
=> ( X1 @ ( sub @ X2 @ ( push @ X3 @ id ) ) ) )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term] : ( X1 @ X2 ) ) ) )
=> ( ~ ( ~ ( ! [X1: subst,X2: subst,X3: subst] :
( ( comp @ ( comp @ X1 @ X2 ) @ X3 )
= ( comp @ X1 @ ( comp @ X2 @ X3 ) ) )
=> ~ ! [X1: subst] :
( ( comp @ id @ X1 )
= X1 ) )
=> ~ ! [X1: subst] :
( ( comp @ X1 @ id )
= X1 ) )
=> ( ~ ( ! [X1: term,X2: subst,X3: subst] :
( ( sub @ ( sub @ X1 @ X2 ) @ X3 )
= ( sub @ X1 @ ( comp @ X2 @ X3 ) ) )
=> ~ sP6 )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ ( sub @ X1 @ id ) @ X3 )
= ( ap @ ( sub @ X2 @ id ) @ X4 ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ ( sub @ X1 @ id ) @ X3 )
= ( ap @ ( sub @ X2 @ id ) @ X4 ) )
=> ( X3 = X4 ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ! [X2: subst > term > term] :
( ! [X3: subst,X4: term,X5: subst] :
( ( sub @ ( X2 @ X3 @ X4 ) @ X5 )
= ( X2 @ ( comp @ X3 @ X5 ) @ ( sub @ X4 @ X5 ) ) )
=> ( ( ( lam @ ( X1 @ sh @ one ) )
= ( lam @ ( X2 @ sh @ one ) ) )
=> ! [X3: subst,X4: term] :
( ( X1 @ X3 @ X4 )
= ( X2 @ X3 @ X4 ) ) ) ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ! [X2: term,X3: term] :
( ( lam @ ( X1 @ sh @ one ) )
!= ( ap @ ( sub @ X2 @ id ) @ X3 ) ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ~ ( var @ ( sub @ ( lam @ ( X1 @ sh @ one ) ) @ id ) ) )
=> ( ! [X1: term,X2: term] :
~ ( var @ ( sub @ ( ap @ ( sub @ X1 @ id ) @ X2 ) @ id ) )
=> ! [X1: subst > term > subst > $o,X2: term > $o] :
( ! [X3: subst,X4: term,X5: subst,X6: subst] :
( ( X1 @ X3 @ X4 @ ( comp @ X6 @ X5 ) )
=> ( X1 @ ( comp @ X3 @ X6 ) @ ( sub @ X4 @ X6 ) @ X5 ) )
=> ( ! [X3: subst,X4: term,X5: subst,X6: subst] :
( ( X1 @ ( comp @ X3 @ X6 ) @ ( sub @ X4 @ X6 ) @ X5 )
=> ( X1 @ X3 @ X4 @ ( comp @ X6 @ X5 ) ) )
=> ( ! [X3: term] :
( ( var @ ( sub @ X3 @ id ) )
=> ( X1 @ id @ X3 @ id ) )
=> ( ! [X3: term] :
( ( X2 @ X3 )
= ( X1 @ id @ X3 @ id ) )
=> ! [X3: term] :
( ( var @ X3 )
=> ( X2 @ X3 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
introduced(assumption,[]) ).
thf(h11,assumption,
! [X1: subst] :
( ( comp @ id @ X1 )
= X1 ),
introduced(assumption,[]) ).
thf(h12,assumption,
~ ( ! [X1: term,X2: subst] :
( ( comp @ sh @ ( push @ X1 @ X2 ) )
= X2 )
=> ( ! [X1: subst,X2: subst,X3: subst] :
( ( comp @ ( comp @ X1 @ X2 ) @ X3 )
= ( comp @ X1 @ ( comp @ X2 @ X3 ) ) )
=> ( ! [X1: term,X2: subst,X3: subst] :
( ( comp @ ( push @ X1 @ X2 ) @ X3 )
= ( push @ ( sub @ X1 @ X3 ) @ ( comp @ X2 @ X3 ) ) )
=> ( ! [X1: subst] :
( ( comp @ X1 @ id )
= X1 )
=> ( ( ( push @ one @ sh )
= id )
=> ( ! [X1: subst] :
( ( push @ ( sub @ one @ X1 ) @ ( comp @ sh @ X1 ) )
= X1 )
=> ( ( var @ one )
=> ( ! [X1: term] :
( ( var @ X1 )
=> ( var @ ( sub @ X1 @ sh ) ) )
=> ( ! [X1: term > $o] :
( ( X1 @ one )
=> ( ! [X2: term] :
( ( var @ X2 )
=> ( ( X1 @ X2 )
=> ( X1 @ ( sub @ X2 @ sh ) ) ) )
=> ! [X2: term] :
( ( var @ X2 )
=> ( X1 @ X2 ) ) ) )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ X1 @ X3 )
= ( ap @ X2 @ X4 ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ X1 @ X3 )
= ( ap @ X2 @ X4 ) )
=> ( X3 = X4 ) )
=> ( ! [X1: term,X2: term] :
( ( ( lam @ X1 )
= ( lam @ X2 ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term] :
( ( ( sub @ X1 @ sh )
= ( sub @ X2 @ sh ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term,X3: term] :
( ( lam @ X1 )
!= ( ap @ X2 @ X3 ) )
=> ( ! [X1: term,X2: term] :
~ ( var @ ( ap @ X1 @ X2 ) )
=> ( ! [X1: term] :
~ ( var @ ( lam @ X1 ) )
=> ( ! [X1: term > $o] :
( ! [X2: term] :
( ( var @ X2 )
=> ( X1 @ X2 ) )
=> ( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ( X1 @ X2 )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term] : ( X1 @ X2 ) ) ) )
=> ( ! [X1: term > $o,X2: term,X3: subst] :
( ! [X4: term] :
( ( var @ X4 )
=> ( X1 @ ( sub @ X4 @ X3 ) ) )
=> ( ( X1 @ X2 )
=> ! [X4: term] :
( ( var @ X4 )
=> ( X1 @ ( sub @ X4 @ ( push @ X2 @ X3 ) ) ) ) ) )
=> ( ! [X1: term > $o] :
( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ! [X3: term] :
( ( X1 @ X3 )
=> ( X1 @ ( sub @ X2 @ ( push @ X3 @ id ) ) ) )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term,X3: subst] :
( ! [X4: term] :
( ( var @ X4 )
=> ( X1 @ ( sub @ X4 @ X3 ) ) )
=> ( X1 @ ( sub @ X2 @ X3 ) ) ) ) )
=> ( ! [X1: term > $o] :
( ! [X2: term] :
( ( var @ X2 )
=> ( X1 @ X2 ) )
=> ( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ! [X3: term] :
( ( X1 @ X3 )
=> ( X1 @ ( sub @ X2 @ ( push @ X3 @ id ) ) ) )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term] : ( X1 @ X2 ) ) ) )
=> ( ~ ( ~ ( ! [X1: subst,X2: subst,X3: subst] :
( ( comp @ ( comp @ X1 @ X2 ) @ X3 )
= ( comp @ X1 @ ( comp @ X2 @ X3 ) ) )
=> ~ ! [X1: subst] :
( ( comp @ id @ X1 )
= X1 ) )
=> ~ ! [X1: subst] :
( ( comp @ X1 @ id )
= X1 ) )
=> ( ~ ( ! [X1: term,X2: subst,X3: subst] :
( ( sub @ ( sub @ X1 @ X2 ) @ X3 )
= ( sub @ X1 @ ( comp @ X2 @ X3 ) ) )
=> ~ sP6 )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ ( sub @ X1 @ id ) @ X3 )
= ( ap @ ( sub @ X2 @ id ) @ X4 ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ ( sub @ X1 @ id ) @ X3 )
= ( ap @ ( sub @ X2 @ id ) @ X4 ) )
=> ( X3 = X4 ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ! [X2: subst > term > term] :
( ! [X3: subst,X4: term,X5: subst] :
( ( sub @ ( X2 @ X3 @ X4 ) @ X5 )
= ( X2 @ ( comp @ X3 @ X5 ) @ ( sub @ X4 @ X5 ) ) )
=> ( ( ( lam @ ( X1 @ sh @ one ) )
= ( lam @ ( X2 @ sh @ one ) ) )
=> ! [X3: subst,X4: term] :
( ( X1 @ X3 @ X4 )
= ( X2 @ X3 @ X4 ) ) ) ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ! [X2: term,X3: term] :
( ( lam @ ( X1 @ sh @ one ) )
!= ( ap @ ( sub @ X2 @ id ) @ X3 ) ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ~ ( var @ ( sub @ ( lam @ ( X1 @ sh @ one ) ) @ id ) ) )
=> ( ! [X1: term,X2: term] :
~ ( var @ ( sub @ ( ap @ ( sub @ X1 @ id ) @ X2 ) @ id ) )
=> ! [X1: subst > term > subst > $o,X2: term > $o] :
( ! [X3: subst,X4: term,X5: subst,X6: subst] :
( ( X1 @ X3 @ X4 @ ( comp @ X6 @ X5 ) )
=> ( X1 @ ( comp @ X3 @ X6 ) @ ( sub @ X4 @ X6 ) @ X5 ) )
=> ( ! [X3: subst,X4: term,X5: subst,X6: subst] :
( ( X1 @ ( comp @ X3 @ X6 ) @ ( sub @ X4 @ X6 ) @ X5 )
=> ( X1 @ X3 @ X4 @ ( comp @ X6 @ X5 ) ) )
=> ( ! [X3: term] :
( ( var @ ( sub @ X3 @ id ) )
=> ( X1 @ id @ X3 @ id ) )
=> ( ! [X3: term] :
( ( X2 @ X3 )
= ( X1 @ id @ X3 @ id ) )
=> ! [X3: term] :
( ( var @ X3 )
=> ( X2 @ X3 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
introduced(assumption,[]) ).
thf(h13,assumption,
! [X1: term,X2: subst] :
( ( comp @ sh @ ( push @ X1 @ X2 ) )
= X2 ),
introduced(assumption,[]) ).
thf(h14,assumption,
~ ( ! [X1: subst,X2: subst,X3: subst] :
( ( comp @ ( comp @ X1 @ X2 ) @ X3 )
= ( comp @ X1 @ ( comp @ X2 @ X3 ) ) )
=> ( ! [X1: term,X2: subst,X3: subst] :
( ( comp @ ( push @ X1 @ X2 ) @ X3 )
= ( push @ ( sub @ X1 @ X3 ) @ ( comp @ X2 @ X3 ) ) )
=> ( ! [X1: subst] :
( ( comp @ X1 @ id )
= X1 )
=> ( ( ( push @ one @ sh )
= id )
=> ( ! [X1: subst] :
( ( push @ ( sub @ one @ X1 ) @ ( comp @ sh @ X1 ) )
= X1 )
=> ( ( var @ one )
=> ( ! [X1: term] :
( ( var @ X1 )
=> ( var @ ( sub @ X1 @ sh ) ) )
=> ( ! [X1: term > $o] :
( ( X1 @ one )
=> ( ! [X2: term] :
( ( var @ X2 )
=> ( ( X1 @ X2 )
=> ( X1 @ ( sub @ X2 @ sh ) ) ) )
=> ! [X2: term] :
( ( var @ X2 )
=> ( X1 @ X2 ) ) ) )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ X1 @ X3 )
= ( ap @ X2 @ X4 ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ X1 @ X3 )
= ( ap @ X2 @ X4 ) )
=> ( X3 = X4 ) )
=> ( ! [X1: term,X2: term] :
( ( ( lam @ X1 )
= ( lam @ X2 ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term] :
( ( ( sub @ X1 @ sh )
= ( sub @ X2 @ sh ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term,X3: term] :
( ( lam @ X1 )
!= ( ap @ X2 @ X3 ) )
=> ( ! [X1: term,X2: term] :
~ ( var @ ( ap @ X1 @ X2 ) )
=> ( ! [X1: term] :
~ ( var @ ( lam @ X1 ) )
=> ( ! [X1: term > $o] :
( ! [X2: term] :
( ( var @ X2 )
=> ( X1 @ X2 ) )
=> ( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ( X1 @ X2 )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term] : ( X1 @ X2 ) ) ) )
=> ( ! [X1: term > $o,X2: term,X3: subst] :
( ! [X4: term] :
( ( var @ X4 )
=> ( X1 @ ( sub @ X4 @ X3 ) ) )
=> ( ( X1 @ X2 )
=> ! [X4: term] :
( ( var @ X4 )
=> ( X1 @ ( sub @ X4 @ ( push @ X2 @ X3 ) ) ) ) ) )
=> ( ! [X1: term > $o] :
( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ! [X3: term] :
( ( X1 @ X3 )
=> ( X1 @ ( sub @ X2 @ ( push @ X3 @ id ) ) ) )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term,X3: subst] :
( ! [X4: term] :
( ( var @ X4 )
=> ( X1 @ ( sub @ X4 @ X3 ) ) )
=> ( X1 @ ( sub @ X2 @ X3 ) ) ) ) )
=> ( ! [X1: term > $o] :
( ! [X2: term] :
( ( var @ X2 )
=> ( X1 @ X2 ) )
=> ( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ! [X3: term] :
( ( X1 @ X3 )
=> ( X1 @ ( sub @ X2 @ ( push @ X3 @ id ) ) ) )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term] : ( X1 @ X2 ) ) ) )
=> ( ~ ( ~ ( ! [X1: subst,X2: subst,X3: subst] :
( ( comp @ ( comp @ X1 @ X2 ) @ X3 )
= ( comp @ X1 @ ( comp @ X2 @ X3 ) ) )
=> ~ ! [X1: subst] :
( ( comp @ id @ X1 )
= X1 ) )
=> ~ ! [X1: subst] :
( ( comp @ X1 @ id )
= X1 ) )
=> ( ~ ( ! [X1: term,X2: subst,X3: subst] :
( ( sub @ ( sub @ X1 @ X2 ) @ X3 )
= ( sub @ X1 @ ( comp @ X2 @ X3 ) ) )
=> ~ sP6 )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ ( sub @ X1 @ id ) @ X3 )
= ( ap @ ( sub @ X2 @ id ) @ X4 ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ ( sub @ X1 @ id ) @ X3 )
= ( ap @ ( sub @ X2 @ id ) @ X4 ) )
=> ( X3 = X4 ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ! [X2: subst > term > term] :
( ! [X3: subst,X4: term,X5: subst] :
( ( sub @ ( X2 @ X3 @ X4 ) @ X5 )
= ( X2 @ ( comp @ X3 @ X5 ) @ ( sub @ X4 @ X5 ) ) )
=> ( ( ( lam @ ( X1 @ sh @ one ) )
= ( lam @ ( X2 @ sh @ one ) ) )
=> ! [X3: subst,X4: term] :
( ( X1 @ X3 @ X4 )
= ( X2 @ X3 @ X4 ) ) ) ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ! [X2: term,X3: term] :
( ( lam @ ( X1 @ sh @ one ) )
!= ( ap @ ( sub @ X2 @ id ) @ X3 ) ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ~ ( var @ ( sub @ ( lam @ ( X1 @ sh @ one ) ) @ id ) ) )
=> ( ! [X1: term,X2: term] :
~ ( var @ ( sub @ ( ap @ ( sub @ X1 @ id ) @ X2 ) @ id ) )
=> ! [X1: subst > term > subst > $o,X2: term > $o] :
( ! [X3: subst,X4: term,X5: subst,X6: subst] :
( ( X1 @ X3 @ X4 @ ( comp @ X6 @ X5 ) )
=> ( X1 @ ( comp @ X3 @ X6 ) @ ( sub @ X4 @ X6 ) @ X5 ) )
=> ( ! [X3: subst,X4: term,X5: subst,X6: subst] :
( ( X1 @ ( comp @ X3 @ X6 ) @ ( sub @ X4 @ X6 ) @ X5 )
=> ( X1 @ X3 @ X4 @ ( comp @ X6 @ X5 ) ) )
=> ( ! [X3: term] :
( ( var @ ( sub @ X3 @ id ) )
=> ( X1 @ id @ X3 @ id ) )
=> ( ! [X3: term] :
( ( X2 @ X3 )
= ( X1 @ id @ X3 @ id ) )
=> ! [X3: term] :
( ( var @ X3 )
=> ( X2 @ X3 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
introduced(assumption,[]) ).
thf(h15,assumption,
! [X1: subst,X2: subst,X3: subst] :
( ( comp @ ( comp @ X1 @ X2 ) @ X3 )
= ( comp @ X1 @ ( comp @ X2 @ X3 ) ) ),
introduced(assumption,[]) ).
thf(h16,assumption,
~ ( ! [X1: term,X2: subst,X3: subst] :
( ( comp @ ( push @ X1 @ X2 ) @ X3 )
= ( push @ ( sub @ X1 @ X3 ) @ ( comp @ X2 @ X3 ) ) )
=> ( ! [X1: subst] :
( ( comp @ X1 @ id )
= X1 )
=> ( ( ( push @ one @ sh )
= id )
=> ( ! [X1: subst] :
( ( push @ ( sub @ one @ X1 ) @ ( comp @ sh @ X1 ) )
= X1 )
=> ( ( var @ one )
=> ( ! [X1: term] :
( ( var @ X1 )
=> ( var @ ( sub @ X1 @ sh ) ) )
=> ( ! [X1: term > $o] :
( ( X1 @ one )
=> ( ! [X2: term] :
( ( var @ X2 )
=> ( ( X1 @ X2 )
=> ( X1 @ ( sub @ X2 @ sh ) ) ) )
=> ! [X2: term] :
( ( var @ X2 )
=> ( X1 @ X2 ) ) ) )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ X1 @ X3 )
= ( ap @ X2 @ X4 ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ X1 @ X3 )
= ( ap @ X2 @ X4 ) )
=> ( X3 = X4 ) )
=> ( ! [X1: term,X2: term] :
( ( ( lam @ X1 )
= ( lam @ X2 ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term] :
( ( ( sub @ X1 @ sh )
= ( sub @ X2 @ sh ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term,X3: term] :
( ( lam @ X1 )
!= ( ap @ X2 @ X3 ) )
=> ( ! [X1: term,X2: term] :
~ ( var @ ( ap @ X1 @ X2 ) )
=> ( ! [X1: term] :
~ ( var @ ( lam @ X1 ) )
=> ( ! [X1: term > $o] :
( ! [X2: term] :
( ( var @ X2 )
=> ( X1 @ X2 ) )
=> ( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ( X1 @ X2 )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term] : ( X1 @ X2 ) ) ) )
=> ( ! [X1: term > $o,X2: term,X3: subst] :
( ! [X4: term] :
( ( var @ X4 )
=> ( X1 @ ( sub @ X4 @ X3 ) ) )
=> ( ( X1 @ X2 )
=> ! [X4: term] :
( ( var @ X4 )
=> ( X1 @ ( sub @ X4 @ ( push @ X2 @ X3 ) ) ) ) ) )
=> ( ! [X1: term > $o] :
( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ! [X3: term] :
( ( X1 @ X3 )
=> ( X1 @ ( sub @ X2 @ ( push @ X3 @ id ) ) ) )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term,X3: subst] :
( ! [X4: term] :
( ( var @ X4 )
=> ( X1 @ ( sub @ X4 @ X3 ) ) )
=> ( X1 @ ( sub @ X2 @ X3 ) ) ) ) )
=> ( ! [X1: term > $o] :
( ! [X2: term] :
( ( var @ X2 )
=> ( X1 @ X2 ) )
=> ( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ! [X3: term] :
( ( X1 @ X3 )
=> ( X1 @ ( sub @ X2 @ ( push @ X3 @ id ) ) ) )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term] : ( X1 @ X2 ) ) ) )
=> ( ~ ( ~ ( ! [X1: subst,X2: subst,X3: subst] :
( ( comp @ ( comp @ X1 @ X2 ) @ X3 )
= ( comp @ X1 @ ( comp @ X2 @ X3 ) ) )
=> ~ ! [X1: subst] :
( ( comp @ id @ X1 )
= X1 ) )
=> ~ ! [X1: subst] :
( ( comp @ X1 @ id )
= X1 ) )
=> ( ~ ( ! [X1: term,X2: subst,X3: subst] :
( ( sub @ ( sub @ X1 @ X2 ) @ X3 )
= ( sub @ X1 @ ( comp @ X2 @ X3 ) ) )
=> ~ sP6 )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ ( sub @ X1 @ id ) @ X3 )
= ( ap @ ( sub @ X2 @ id ) @ X4 ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ ( sub @ X1 @ id ) @ X3 )
= ( ap @ ( sub @ X2 @ id ) @ X4 ) )
=> ( X3 = X4 ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ! [X2: subst > term > term] :
( ! [X3: subst,X4: term,X5: subst] :
( ( sub @ ( X2 @ X3 @ X4 ) @ X5 )
= ( X2 @ ( comp @ X3 @ X5 ) @ ( sub @ X4 @ X5 ) ) )
=> ( ( ( lam @ ( X1 @ sh @ one ) )
= ( lam @ ( X2 @ sh @ one ) ) )
=> ! [X3: subst,X4: term] :
( ( X1 @ X3 @ X4 )
= ( X2 @ X3 @ X4 ) ) ) ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ! [X2: term,X3: term] :
( ( lam @ ( X1 @ sh @ one ) )
!= ( ap @ ( sub @ X2 @ id ) @ X3 ) ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ~ ( var @ ( sub @ ( lam @ ( X1 @ sh @ one ) ) @ id ) ) )
=> ( ! [X1: term,X2: term] :
~ ( var @ ( sub @ ( ap @ ( sub @ X1 @ id ) @ X2 ) @ id ) )
=> ! [X1: subst > term > subst > $o,X2: term > $o] :
( ! [X3: subst,X4: term,X5: subst,X6: subst] :
( ( X1 @ X3 @ X4 @ ( comp @ X6 @ X5 ) )
=> ( X1 @ ( comp @ X3 @ X6 ) @ ( sub @ X4 @ X6 ) @ X5 ) )
=> ( ! [X3: subst,X4: term,X5: subst,X6: subst] :
( ( X1 @ ( comp @ X3 @ X6 ) @ ( sub @ X4 @ X6 ) @ X5 )
=> ( X1 @ X3 @ X4 @ ( comp @ X6 @ X5 ) ) )
=> ( ! [X3: term] :
( ( var @ ( sub @ X3 @ id ) )
=> ( X1 @ id @ X3 @ id ) )
=> ( ! [X3: term] :
( ( X2 @ X3 )
= ( X1 @ id @ X3 @ id ) )
=> ! [X3: term] :
( ( var @ X3 )
=> ( X2 @ X3 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
introduced(assumption,[]) ).
thf(h17,assumption,
! [X1: term,X2: subst,X3: subst] :
( ( comp @ ( push @ X1 @ X2 ) @ X3 )
= ( push @ ( sub @ X1 @ X3 ) @ ( comp @ X2 @ X3 ) ) ),
introduced(assumption,[]) ).
thf(h18,assumption,
~ ( ! [X1: subst] :
( ( comp @ X1 @ id )
= X1 )
=> ( ( ( push @ one @ sh )
= id )
=> ( ! [X1: subst] :
( ( push @ ( sub @ one @ X1 ) @ ( comp @ sh @ X1 ) )
= X1 )
=> ( ( var @ one )
=> ( ! [X1: term] :
( ( var @ X1 )
=> ( var @ ( sub @ X1 @ sh ) ) )
=> ( ! [X1: term > $o] :
( ( X1 @ one )
=> ( ! [X2: term] :
( ( var @ X2 )
=> ( ( X1 @ X2 )
=> ( X1 @ ( sub @ X2 @ sh ) ) ) )
=> ! [X2: term] :
( ( var @ X2 )
=> ( X1 @ X2 ) ) ) )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ X1 @ X3 )
= ( ap @ X2 @ X4 ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ X1 @ X3 )
= ( ap @ X2 @ X4 ) )
=> ( X3 = X4 ) )
=> ( ! [X1: term,X2: term] :
( ( ( lam @ X1 )
= ( lam @ X2 ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term] :
( ( ( sub @ X1 @ sh )
= ( sub @ X2 @ sh ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term,X3: term] :
( ( lam @ X1 )
!= ( ap @ X2 @ X3 ) )
=> ( ! [X1: term,X2: term] :
~ ( var @ ( ap @ X1 @ X2 ) )
=> ( ! [X1: term] :
~ ( var @ ( lam @ X1 ) )
=> ( ! [X1: term > $o] :
( ! [X2: term] :
( ( var @ X2 )
=> ( X1 @ X2 ) )
=> ( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ( X1 @ X2 )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term] : ( X1 @ X2 ) ) ) )
=> ( ! [X1: term > $o,X2: term,X3: subst] :
( ! [X4: term] :
( ( var @ X4 )
=> ( X1 @ ( sub @ X4 @ X3 ) ) )
=> ( ( X1 @ X2 )
=> ! [X4: term] :
( ( var @ X4 )
=> ( X1 @ ( sub @ X4 @ ( push @ X2 @ X3 ) ) ) ) ) )
=> ( ! [X1: term > $o] :
( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ! [X3: term] :
( ( X1 @ X3 )
=> ( X1 @ ( sub @ X2 @ ( push @ X3 @ id ) ) ) )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term,X3: subst] :
( ! [X4: term] :
( ( var @ X4 )
=> ( X1 @ ( sub @ X4 @ X3 ) ) )
=> ( X1 @ ( sub @ X2 @ X3 ) ) ) ) )
=> ( ! [X1: term > $o] :
( ! [X2: term] :
( ( var @ X2 )
=> ( X1 @ X2 ) )
=> ( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ! [X3: term] :
( ( X1 @ X3 )
=> ( X1 @ ( sub @ X2 @ ( push @ X3 @ id ) ) ) )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term] : ( X1 @ X2 ) ) ) )
=> ( ~ ( ~ ( ! [X1: subst,X2: subst,X3: subst] :
( ( comp @ ( comp @ X1 @ X2 ) @ X3 )
= ( comp @ X1 @ ( comp @ X2 @ X3 ) ) )
=> ~ ! [X1: subst] :
( ( comp @ id @ X1 )
= X1 ) )
=> ~ ! [X1: subst] :
( ( comp @ X1 @ id )
= X1 ) )
=> ( ~ ( ! [X1: term,X2: subst,X3: subst] :
( ( sub @ ( sub @ X1 @ X2 ) @ X3 )
= ( sub @ X1 @ ( comp @ X2 @ X3 ) ) )
=> ~ sP6 )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ ( sub @ X1 @ id ) @ X3 )
= ( ap @ ( sub @ X2 @ id ) @ X4 ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ ( sub @ X1 @ id ) @ X3 )
= ( ap @ ( sub @ X2 @ id ) @ X4 ) )
=> ( X3 = X4 ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ! [X2: subst > term > term] :
( ! [X3: subst,X4: term,X5: subst] :
( ( sub @ ( X2 @ X3 @ X4 ) @ X5 )
= ( X2 @ ( comp @ X3 @ X5 ) @ ( sub @ X4 @ X5 ) ) )
=> ( ( ( lam @ ( X1 @ sh @ one ) )
= ( lam @ ( X2 @ sh @ one ) ) )
=> ! [X3: subst,X4: term] :
( ( X1 @ X3 @ X4 )
= ( X2 @ X3 @ X4 ) ) ) ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ! [X2: term,X3: term] :
( ( lam @ ( X1 @ sh @ one ) )
!= ( ap @ ( sub @ X2 @ id ) @ X3 ) ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ~ ( var @ ( sub @ ( lam @ ( X1 @ sh @ one ) ) @ id ) ) )
=> ( ! [X1: term,X2: term] :
~ ( var @ ( sub @ ( ap @ ( sub @ X1 @ id ) @ X2 ) @ id ) )
=> ! [X1: subst > term > subst > $o,X2: term > $o] :
( ! [X3: subst,X4: term,X5: subst,X6: subst] :
( ( X1 @ X3 @ X4 @ ( comp @ X6 @ X5 ) )
=> ( X1 @ ( comp @ X3 @ X6 ) @ ( sub @ X4 @ X6 ) @ X5 ) )
=> ( ! [X3: subst,X4: term,X5: subst,X6: subst] :
( ( X1 @ ( comp @ X3 @ X6 ) @ ( sub @ X4 @ X6 ) @ X5 )
=> ( X1 @ X3 @ X4 @ ( comp @ X6 @ X5 ) ) )
=> ( ! [X3: term] :
( ( var @ ( sub @ X3 @ id ) )
=> ( X1 @ id @ X3 @ id ) )
=> ( ! [X3: term] :
( ( X2 @ X3 )
= ( X1 @ id @ X3 @ id ) )
=> ! [X3: term] :
( ( var @ X3 )
=> ( X2 @ X3 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
introduced(assumption,[]) ).
thf(h19,assumption,
! [X1: subst] :
( ( comp @ X1 @ id )
= X1 ),
introduced(assumption,[]) ).
thf(h20,assumption,
~ ( ( ( push @ one @ sh )
= id )
=> ( ! [X1: subst] :
( ( push @ ( sub @ one @ X1 ) @ ( comp @ sh @ X1 ) )
= X1 )
=> ( ( var @ one )
=> ( ! [X1: term] :
( ( var @ X1 )
=> ( var @ ( sub @ X1 @ sh ) ) )
=> ( ! [X1: term > $o] :
( ( X1 @ one )
=> ( ! [X2: term] :
( ( var @ X2 )
=> ( ( X1 @ X2 )
=> ( X1 @ ( sub @ X2 @ sh ) ) ) )
=> ! [X2: term] :
( ( var @ X2 )
=> ( X1 @ X2 ) ) ) )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ X1 @ X3 )
= ( ap @ X2 @ X4 ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ X1 @ X3 )
= ( ap @ X2 @ X4 ) )
=> ( X3 = X4 ) )
=> ( ! [X1: term,X2: term] :
( ( ( lam @ X1 )
= ( lam @ X2 ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term] :
( ( ( sub @ X1 @ sh )
= ( sub @ X2 @ sh ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term,X3: term] :
( ( lam @ X1 )
!= ( ap @ X2 @ X3 ) )
=> ( ! [X1: term,X2: term] :
~ ( var @ ( ap @ X1 @ X2 ) )
=> ( ! [X1: term] :
~ ( var @ ( lam @ X1 ) )
=> ( ! [X1: term > $o] :
( ! [X2: term] :
( ( var @ X2 )
=> ( X1 @ X2 ) )
=> ( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ( X1 @ X2 )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term] : ( X1 @ X2 ) ) ) )
=> ( ! [X1: term > $o,X2: term,X3: subst] :
( ! [X4: term] :
( ( var @ X4 )
=> ( X1 @ ( sub @ X4 @ X3 ) ) )
=> ( ( X1 @ X2 )
=> ! [X4: term] :
( ( var @ X4 )
=> ( X1 @ ( sub @ X4 @ ( push @ X2 @ X3 ) ) ) ) ) )
=> ( ! [X1: term > $o] :
( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ! [X3: term] :
( ( X1 @ X3 )
=> ( X1 @ ( sub @ X2 @ ( push @ X3 @ id ) ) ) )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term,X3: subst] :
( ! [X4: term] :
( ( var @ X4 )
=> ( X1 @ ( sub @ X4 @ X3 ) ) )
=> ( X1 @ ( sub @ X2 @ X3 ) ) ) ) )
=> ( ! [X1: term > $o] :
( ! [X2: term] :
( ( var @ X2 )
=> ( X1 @ X2 ) )
=> ( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ! [X3: term] :
( ( X1 @ X3 )
=> ( X1 @ ( sub @ X2 @ ( push @ X3 @ id ) ) ) )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term] : ( X1 @ X2 ) ) ) )
=> ( ~ ( ~ ( ! [X1: subst,X2: subst,X3: subst] :
( ( comp @ ( comp @ X1 @ X2 ) @ X3 )
= ( comp @ X1 @ ( comp @ X2 @ X3 ) ) )
=> ~ ! [X1: subst] :
( ( comp @ id @ X1 )
= X1 ) )
=> ~ ! [X1: subst] :
( ( comp @ X1 @ id )
= X1 ) )
=> ( ~ ( ! [X1: term,X2: subst,X3: subst] :
( ( sub @ ( sub @ X1 @ X2 ) @ X3 )
= ( sub @ X1 @ ( comp @ X2 @ X3 ) ) )
=> ~ sP6 )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ ( sub @ X1 @ id ) @ X3 )
= ( ap @ ( sub @ X2 @ id ) @ X4 ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ ( sub @ X1 @ id ) @ X3 )
= ( ap @ ( sub @ X2 @ id ) @ X4 ) )
=> ( X3 = X4 ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ! [X2: subst > term > term] :
( ! [X3: subst,X4: term,X5: subst] :
( ( sub @ ( X2 @ X3 @ X4 ) @ X5 )
= ( X2 @ ( comp @ X3 @ X5 ) @ ( sub @ X4 @ X5 ) ) )
=> ( ( ( lam @ ( X1 @ sh @ one ) )
= ( lam @ ( X2 @ sh @ one ) ) )
=> ! [X3: subst,X4: term] :
( ( X1 @ X3 @ X4 )
= ( X2 @ X3 @ X4 ) ) ) ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ! [X2: term,X3: term] :
( ( lam @ ( X1 @ sh @ one ) )
!= ( ap @ ( sub @ X2 @ id ) @ X3 ) ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ~ ( var @ ( sub @ ( lam @ ( X1 @ sh @ one ) ) @ id ) ) )
=> ( ! [X1: term,X2: term] :
~ ( var @ ( sub @ ( ap @ ( sub @ X1 @ id ) @ X2 ) @ id ) )
=> ! [X1: subst > term > subst > $o,X2: term > $o] :
( ! [X3: subst,X4: term,X5: subst,X6: subst] :
( ( X1 @ X3 @ X4 @ ( comp @ X6 @ X5 ) )
=> ( X1 @ ( comp @ X3 @ X6 ) @ ( sub @ X4 @ X6 ) @ X5 ) )
=> ( ! [X3: subst,X4: term,X5: subst,X6: subst] :
( ( X1 @ ( comp @ X3 @ X6 ) @ ( sub @ X4 @ X6 ) @ X5 )
=> ( X1 @ X3 @ X4 @ ( comp @ X6 @ X5 ) ) )
=> ( ! [X3: term] :
( ( var @ ( sub @ X3 @ id ) )
=> ( X1 @ id @ X3 @ id ) )
=> ( ! [X3: term] :
( ( X2 @ X3 )
= ( X1 @ id @ X3 @ id ) )
=> ! [X3: term] :
( ( var @ X3 )
=> ( X2 @ X3 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
introduced(assumption,[]) ).
thf(h21,assumption,
( ( push @ one @ sh )
= id ),
introduced(assumption,[]) ).
thf(h22,assumption,
~ ( ! [X1: subst] :
( ( push @ ( sub @ one @ X1 ) @ ( comp @ sh @ X1 ) )
= X1 )
=> ( ( var @ one )
=> ( ! [X1: term] :
( ( var @ X1 )
=> ( var @ ( sub @ X1 @ sh ) ) )
=> ( ! [X1: term > $o] :
( ( X1 @ one )
=> ( ! [X2: term] :
( ( var @ X2 )
=> ( ( X1 @ X2 )
=> ( X1 @ ( sub @ X2 @ sh ) ) ) )
=> ! [X2: term] :
( ( var @ X2 )
=> ( X1 @ X2 ) ) ) )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ X1 @ X3 )
= ( ap @ X2 @ X4 ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ X1 @ X3 )
= ( ap @ X2 @ X4 ) )
=> ( X3 = X4 ) )
=> ( ! [X1: term,X2: term] :
( ( ( lam @ X1 )
= ( lam @ X2 ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term] :
( ( ( sub @ X1 @ sh )
= ( sub @ X2 @ sh ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term,X3: term] :
( ( lam @ X1 )
!= ( ap @ X2 @ X3 ) )
=> ( ! [X1: term,X2: term] :
~ ( var @ ( ap @ X1 @ X2 ) )
=> ( ! [X1: term] :
~ ( var @ ( lam @ X1 ) )
=> ( ! [X1: term > $o] :
( ! [X2: term] :
( ( var @ X2 )
=> ( X1 @ X2 ) )
=> ( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ( X1 @ X2 )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term] : ( X1 @ X2 ) ) ) )
=> ( ! [X1: term > $o,X2: term,X3: subst] :
( ! [X4: term] :
( ( var @ X4 )
=> ( X1 @ ( sub @ X4 @ X3 ) ) )
=> ( ( X1 @ X2 )
=> ! [X4: term] :
( ( var @ X4 )
=> ( X1 @ ( sub @ X4 @ ( push @ X2 @ X3 ) ) ) ) ) )
=> ( ! [X1: term > $o] :
( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ! [X3: term] :
( ( X1 @ X3 )
=> ( X1 @ ( sub @ X2 @ ( push @ X3 @ id ) ) ) )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term,X3: subst] :
( ! [X4: term] :
( ( var @ X4 )
=> ( X1 @ ( sub @ X4 @ X3 ) ) )
=> ( X1 @ ( sub @ X2 @ X3 ) ) ) ) )
=> ( ! [X1: term > $o] :
( ! [X2: term] :
( ( var @ X2 )
=> ( X1 @ X2 ) )
=> ( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ! [X3: term] :
( ( X1 @ X3 )
=> ( X1 @ ( sub @ X2 @ ( push @ X3 @ id ) ) ) )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term] : ( X1 @ X2 ) ) ) )
=> ( ~ ( ~ ( ! [X1: subst,X2: subst,X3: subst] :
( ( comp @ ( comp @ X1 @ X2 ) @ X3 )
= ( comp @ X1 @ ( comp @ X2 @ X3 ) ) )
=> ~ ! [X1: subst] :
( ( comp @ id @ X1 )
= X1 ) )
=> ~ ! [X1: subst] :
( ( comp @ X1 @ id )
= X1 ) )
=> ( ~ ( ! [X1: term,X2: subst,X3: subst] :
( ( sub @ ( sub @ X1 @ X2 ) @ X3 )
= ( sub @ X1 @ ( comp @ X2 @ X3 ) ) )
=> ~ sP6 )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ ( sub @ X1 @ id ) @ X3 )
= ( ap @ ( sub @ X2 @ id ) @ X4 ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ ( sub @ X1 @ id ) @ X3 )
= ( ap @ ( sub @ X2 @ id ) @ X4 ) )
=> ( X3 = X4 ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ! [X2: subst > term > term] :
( ! [X3: subst,X4: term,X5: subst] :
( ( sub @ ( X2 @ X3 @ X4 ) @ X5 )
= ( X2 @ ( comp @ X3 @ X5 ) @ ( sub @ X4 @ X5 ) ) )
=> ( ( ( lam @ ( X1 @ sh @ one ) )
= ( lam @ ( X2 @ sh @ one ) ) )
=> ! [X3: subst,X4: term] :
( ( X1 @ X3 @ X4 )
= ( X2 @ X3 @ X4 ) ) ) ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ! [X2: term,X3: term] :
( ( lam @ ( X1 @ sh @ one ) )
!= ( ap @ ( sub @ X2 @ id ) @ X3 ) ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ~ ( var @ ( sub @ ( lam @ ( X1 @ sh @ one ) ) @ id ) ) )
=> ( ! [X1: term,X2: term] :
~ ( var @ ( sub @ ( ap @ ( sub @ X1 @ id ) @ X2 ) @ id ) )
=> ! [X1: subst > term > subst > $o,X2: term > $o] :
( ! [X3: subst,X4: term,X5: subst,X6: subst] :
( ( X1 @ X3 @ X4 @ ( comp @ X6 @ X5 ) )
=> ( X1 @ ( comp @ X3 @ X6 ) @ ( sub @ X4 @ X6 ) @ X5 ) )
=> ( ! [X3: subst,X4: term,X5: subst,X6: subst] :
( ( X1 @ ( comp @ X3 @ X6 ) @ ( sub @ X4 @ X6 ) @ X5 )
=> ( X1 @ X3 @ X4 @ ( comp @ X6 @ X5 ) ) )
=> ( ! [X3: term] :
( ( var @ ( sub @ X3 @ id ) )
=> ( X1 @ id @ X3 @ id ) )
=> ( ! [X3: term] :
( ( X2 @ X3 )
= ( X1 @ id @ X3 @ id ) )
=> ! [X3: term] :
( ( var @ X3 )
=> ( X2 @ X3 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
introduced(assumption,[]) ).
thf(h23,assumption,
! [X1: subst] :
( ( push @ ( sub @ one @ X1 ) @ ( comp @ sh @ X1 ) )
= X1 ),
introduced(assumption,[]) ).
thf(h24,assumption,
~ ( ( var @ one )
=> ( ! [X1: term] :
( ( var @ X1 )
=> ( var @ ( sub @ X1 @ sh ) ) )
=> ( ! [X1: term > $o] :
( ( X1 @ one )
=> ( ! [X2: term] :
( ( var @ X2 )
=> ( ( X1 @ X2 )
=> ( X1 @ ( sub @ X2 @ sh ) ) ) )
=> ! [X2: term] :
( ( var @ X2 )
=> ( X1 @ X2 ) ) ) )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ X1 @ X3 )
= ( ap @ X2 @ X4 ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ X1 @ X3 )
= ( ap @ X2 @ X4 ) )
=> ( X3 = X4 ) )
=> ( ! [X1: term,X2: term] :
( ( ( lam @ X1 )
= ( lam @ X2 ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term] :
( ( ( sub @ X1 @ sh )
= ( sub @ X2 @ sh ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term,X3: term] :
( ( lam @ X1 )
!= ( ap @ X2 @ X3 ) )
=> ( ! [X1: term,X2: term] :
~ ( var @ ( ap @ X1 @ X2 ) )
=> ( ! [X1: term] :
~ ( var @ ( lam @ X1 ) )
=> ( ! [X1: term > $o] :
( ! [X2: term] :
( ( var @ X2 )
=> ( X1 @ X2 ) )
=> ( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ( X1 @ X2 )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term] : ( X1 @ X2 ) ) ) )
=> ( ! [X1: term > $o,X2: term,X3: subst] :
( ! [X4: term] :
( ( var @ X4 )
=> ( X1 @ ( sub @ X4 @ X3 ) ) )
=> ( ( X1 @ X2 )
=> ! [X4: term] :
( ( var @ X4 )
=> ( X1 @ ( sub @ X4 @ ( push @ X2 @ X3 ) ) ) ) ) )
=> ( ! [X1: term > $o] :
( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ! [X3: term] :
( ( X1 @ X3 )
=> ( X1 @ ( sub @ X2 @ ( push @ X3 @ id ) ) ) )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term,X3: subst] :
( ! [X4: term] :
( ( var @ X4 )
=> ( X1 @ ( sub @ X4 @ X3 ) ) )
=> ( X1 @ ( sub @ X2 @ X3 ) ) ) ) )
=> ( ! [X1: term > $o] :
( ! [X2: term] :
( ( var @ X2 )
=> ( X1 @ X2 ) )
=> ( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ! [X3: term] :
( ( X1 @ X3 )
=> ( X1 @ ( sub @ X2 @ ( push @ X3 @ id ) ) ) )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term] : ( X1 @ X2 ) ) ) )
=> ( ~ ( ~ ( ! [X1: subst,X2: subst,X3: subst] :
( ( comp @ ( comp @ X1 @ X2 ) @ X3 )
= ( comp @ X1 @ ( comp @ X2 @ X3 ) ) )
=> ~ ! [X1: subst] :
( ( comp @ id @ X1 )
= X1 ) )
=> ~ ! [X1: subst] :
( ( comp @ X1 @ id )
= X1 ) )
=> ( ~ ( ! [X1: term,X2: subst,X3: subst] :
( ( sub @ ( sub @ X1 @ X2 ) @ X3 )
= ( sub @ X1 @ ( comp @ X2 @ X3 ) ) )
=> ~ sP6 )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ ( sub @ X1 @ id ) @ X3 )
= ( ap @ ( sub @ X2 @ id ) @ X4 ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ ( sub @ X1 @ id ) @ X3 )
= ( ap @ ( sub @ X2 @ id ) @ X4 ) )
=> ( X3 = X4 ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ! [X2: subst > term > term] :
( ! [X3: subst,X4: term,X5: subst] :
( ( sub @ ( X2 @ X3 @ X4 ) @ X5 )
= ( X2 @ ( comp @ X3 @ X5 ) @ ( sub @ X4 @ X5 ) ) )
=> ( ( ( lam @ ( X1 @ sh @ one ) )
= ( lam @ ( X2 @ sh @ one ) ) )
=> ! [X3: subst,X4: term] :
( ( X1 @ X3 @ X4 )
= ( X2 @ X3 @ X4 ) ) ) ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ! [X2: term,X3: term] :
( ( lam @ ( X1 @ sh @ one ) )
!= ( ap @ ( sub @ X2 @ id ) @ X3 ) ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ~ ( var @ ( sub @ ( lam @ ( X1 @ sh @ one ) ) @ id ) ) )
=> ( ! [X1: term,X2: term] :
~ ( var @ ( sub @ ( ap @ ( sub @ X1 @ id ) @ X2 ) @ id ) )
=> ! [X1: subst > term > subst > $o,X2: term > $o] :
( ! [X3: subst,X4: term,X5: subst,X6: subst] :
( ( X1 @ X3 @ X4 @ ( comp @ X6 @ X5 ) )
=> ( X1 @ ( comp @ X3 @ X6 ) @ ( sub @ X4 @ X6 ) @ X5 ) )
=> ( ! [X3: subst,X4: term,X5: subst,X6: subst] :
( ( X1 @ ( comp @ X3 @ X6 ) @ ( sub @ X4 @ X6 ) @ X5 )
=> ( X1 @ X3 @ X4 @ ( comp @ X6 @ X5 ) ) )
=> ( ! [X3: term] :
( ( var @ ( sub @ X3 @ id ) )
=> ( X1 @ id @ X3 @ id ) )
=> ( ! [X3: term] :
( ( X2 @ X3 )
= ( X1 @ id @ X3 @ id ) )
=> ! [X3: term] :
( ( var @ X3 )
=> ( X2 @ X3 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
introduced(assumption,[]) ).
thf(h25,assumption,
var @ one,
introduced(assumption,[]) ).
thf(h26,assumption,
~ ( ! [X1: term] :
( ( var @ X1 )
=> ( var @ ( sub @ X1 @ sh ) ) )
=> ( ! [X1: term > $o] :
( ( X1 @ one )
=> ( ! [X2: term] :
( ( var @ X2 )
=> ( ( X1 @ X2 )
=> ( X1 @ ( sub @ X2 @ sh ) ) ) )
=> ! [X2: term] :
( ( var @ X2 )
=> ( X1 @ X2 ) ) ) )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ X1 @ X3 )
= ( ap @ X2 @ X4 ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ X1 @ X3 )
= ( ap @ X2 @ X4 ) )
=> ( X3 = X4 ) )
=> ( ! [X1: term,X2: term] :
( ( ( lam @ X1 )
= ( lam @ X2 ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term] :
( ( ( sub @ X1 @ sh )
= ( sub @ X2 @ sh ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term,X3: term] :
( ( lam @ X1 )
!= ( ap @ X2 @ X3 ) )
=> ( ! [X1: term,X2: term] :
~ ( var @ ( ap @ X1 @ X2 ) )
=> ( ! [X1: term] :
~ ( var @ ( lam @ X1 ) )
=> ( ! [X1: term > $o] :
( ! [X2: term] :
( ( var @ X2 )
=> ( X1 @ X2 ) )
=> ( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ( X1 @ X2 )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term] : ( X1 @ X2 ) ) ) )
=> ( ! [X1: term > $o,X2: term,X3: subst] :
( ! [X4: term] :
( ( var @ X4 )
=> ( X1 @ ( sub @ X4 @ X3 ) ) )
=> ( ( X1 @ X2 )
=> ! [X4: term] :
( ( var @ X4 )
=> ( X1 @ ( sub @ X4 @ ( push @ X2 @ X3 ) ) ) ) ) )
=> ( ! [X1: term > $o] :
( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ! [X3: term] :
( ( X1 @ X3 )
=> ( X1 @ ( sub @ X2 @ ( push @ X3 @ id ) ) ) )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term,X3: subst] :
( ! [X4: term] :
( ( var @ X4 )
=> ( X1 @ ( sub @ X4 @ X3 ) ) )
=> ( X1 @ ( sub @ X2 @ X3 ) ) ) ) )
=> ( ! [X1: term > $o] :
( ! [X2: term] :
( ( var @ X2 )
=> ( X1 @ X2 ) )
=> ( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ! [X3: term] :
( ( X1 @ X3 )
=> ( X1 @ ( sub @ X2 @ ( push @ X3 @ id ) ) ) )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term] : ( X1 @ X2 ) ) ) )
=> ( ~ ( ~ ( ! [X1: subst,X2: subst,X3: subst] :
( ( comp @ ( comp @ X1 @ X2 ) @ X3 )
= ( comp @ X1 @ ( comp @ X2 @ X3 ) ) )
=> ~ ! [X1: subst] :
( ( comp @ id @ X1 )
= X1 ) )
=> ~ ! [X1: subst] :
( ( comp @ X1 @ id )
= X1 ) )
=> ( ~ ( ! [X1: term,X2: subst,X3: subst] :
( ( sub @ ( sub @ X1 @ X2 ) @ X3 )
= ( sub @ X1 @ ( comp @ X2 @ X3 ) ) )
=> ~ sP6 )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ ( sub @ X1 @ id ) @ X3 )
= ( ap @ ( sub @ X2 @ id ) @ X4 ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ ( sub @ X1 @ id ) @ X3 )
= ( ap @ ( sub @ X2 @ id ) @ X4 ) )
=> ( X3 = X4 ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ! [X2: subst > term > term] :
( ! [X3: subst,X4: term,X5: subst] :
( ( sub @ ( X2 @ X3 @ X4 ) @ X5 )
= ( X2 @ ( comp @ X3 @ X5 ) @ ( sub @ X4 @ X5 ) ) )
=> ( ( ( lam @ ( X1 @ sh @ one ) )
= ( lam @ ( X2 @ sh @ one ) ) )
=> ! [X3: subst,X4: term] :
( ( X1 @ X3 @ X4 )
= ( X2 @ X3 @ X4 ) ) ) ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ! [X2: term,X3: term] :
( ( lam @ ( X1 @ sh @ one ) )
!= ( ap @ ( sub @ X2 @ id ) @ X3 ) ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ~ ( var @ ( sub @ ( lam @ ( X1 @ sh @ one ) ) @ id ) ) )
=> ( ! [X1: term,X2: term] :
~ ( var @ ( sub @ ( ap @ ( sub @ X1 @ id ) @ X2 ) @ id ) )
=> ! [X1: subst > term > subst > $o,X2: term > $o] :
( ! [X3: subst,X4: term,X5: subst,X6: subst] :
( ( X1 @ X3 @ X4 @ ( comp @ X6 @ X5 ) )
=> ( X1 @ ( comp @ X3 @ X6 ) @ ( sub @ X4 @ X6 ) @ X5 ) )
=> ( ! [X3: subst,X4: term,X5: subst,X6: subst] :
( ( X1 @ ( comp @ X3 @ X6 ) @ ( sub @ X4 @ X6 ) @ X5 )
=> ( X1 @ X3 @ X4 @ ( comp @ X6 @ X5 ) ) )
=> ( ! [X3: term] :
( ( var @ ( sub @ X3 @ id ) )
=> ( X1 @ id @ X3 @ id ) )
=> ( ! [X3: term] :
( ( X2 @ X3 )
= ( X1 @ id @ X3 @ id ) )
=> ! [X3: term] :
( ( var @ X3 )
=> ( X2 @ X3 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
introduced(assumption,[]) ).
thf(h27,assumption,
! [X1: term] :
( ( var @ X1 )
=> ( var @ ( sub @ X1 @ sh ) ) ),
introduced(assumption,[]) ).
thf(h28,assumption,
~ ( ! [X1: term > $o] :
( ( X1 @ one )
=> ( ! [X2: term] :
( ( var @ X2 )
=> ( ( X1 @ X2 )
=> ( X1 @ ( sub @ X2 @ sh ) ) ) )
=> ! [X2: term] :
( ( var @ X2 )
=> ( X1 @ X2 ) ) ) )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ X1 @ X3 )
= ( ap @ X2 @ X4 ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ X1 @ X3 )
= ( ap @ X2 @ X4 ) )
=> ( X3 = X4 ) )
=> ( ! [X1: term,X2: term] :
( ( ( lam @ X1 )
= ( lam @ X2 ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term] :
( ( ( sub @ X1 @ sh )
= ( sub @ X2 @ sh ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term,X3: term] :
( ( lam @ X1 )
!= ( ap @ X2 @ X3 ) )
=> ( ! [X1: term,X2: term] :
~ ( var @ ( ap @ X1 @ X2 ) )
=> ( ! [X1: term] :
~ ( var @ ( lam @ X1 ) )
=> ( ! [X1: term > $o] :
( ! [X2: term] :
( ( var @ X2 )
=> ( X1 @ X2 ) )
=> ( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ( X1 @ X2 )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term] : ( X1 @ X2 ) ) ) )
=> ( ! [X1: term > $o,X2: term,X3: subst] :
( ! [X4: term] :
( ( var @ X4 )
=> ( X1 @ ( sub @ X4 @ X3 ) ) )
=> ( ( X1 @ X2 )
=> ! [X4: term] :
( ( var @ X4 )
=> ( X1 @ ( sub @ X4 @ ( push @ X2 @ X3 ) ) ) ) ) )
=> ( ! [X1: term > $o] :
( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ! [X3: term] :
( ( X1 @ X3 )
=> ( X1 @ ( sub @ X2 @ ( push @ X3 @ id ) ) ) )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term,X3: subst] :
( ! [X4: term] :
( ( var @ X4 )
=> ( X1 @ ( sub @ X4 @ X3 ) ) )
=> ( X1 @ ( sub @ X2 @ X3 ) ) ) ) )
=> ( ! [X1: term > $o] :
( ! [X2: term] :
( ( var @ X2 )
=> ( X1 @ X2 ) )
=> ( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ! [X3: term] :
( ( X1 @ X3 )
=> ( X1 @ ( sub @ X2 @ ( push @ X3 @ id ) ) ) )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term] : ( X1 @ X2 ) ) ) )
=> ( ~ ( ~ ( ! [X1: subst,X2: subst,X3: subst] :
( ( comp @ ( comp @ X1 @ X2 ) @ X3 )
= ( comp @ X1 @ ( comp @ X2 @ X3 ) ) )
=> ~ ! [X1: subst] :
( ( comp @ id @ X1 )
= X1 ) )
=> ~ ! [X1: subst] :
( ( comp @ X1 @ id )
= X1 ) )
=> ( ~ ( ! [X1: term,X2: subst,X3: subst] :
( ( sub @ ( sub @ X1 @ X2 ) @ X3 )
= ( sub @ X1 @ ( comp @ X2 @ X3 ) ) )
=> ~ sP6 )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ ( sub @ X1 @ id ) @ X3 )
= ( ap @ ( sub @ X2 @ id ) @ X4 ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ ( sub @ X1 @ id ) @ X3 )
= ( ap @ ( sub @ X2 @ id ) @ X4 ) )
=> ( X3 = X4 ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ! [X2: subst > term > term] :
( ! [X3: subst,X4: term,X5: subst] :
( ( sub @ ( X2 @ X3 @ X4 ) @ X5 )
= ( X2 @ ( comp @ X3 @ X5 ) @ ( sub @ X4 @ X5 ) ) )
=> ( ( ( lam @ ( X1 @ sh @ one ) )
= ( lam @ ( X2 @ sh @ one ) ) )
=> ! [X3: subst,X4: term] :
( ( X1 @ X3 @ X4 )
= ( X2 @ X3 @ X4 ) ) ) ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ! [X2: term,X3: term] :
( ( lam @ ( X1 @ sh @ one ) )
!= ( ap @ ( sub @ X2 @ id ) @ X3 ) ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ~ ( var @ ( sub @ ( lam @ ( X1 @ sh @ one ) ) @ id ) ) )
=> ( ! [X1: term,X2: term] :
~ ( var @ ( sub @ ( ap @ ( sub @ X1 @ id ) @ X2 ) @ id ) )
=> ! [X1: subst > term > subst > $o,X2: term > $o] :
( ! [X3: subst,X4: term,X5: subst,X6: subst] :
( ( X1 @ X3 @ X4 @ ( comp @ X6 @ X5 ) )
=> ( X1 @ ( comp @ X3 @ X6 ) @ ( sub @ X4 @ X6 ) @ X5 ) )
=> ( ! [X3: subst,X4: term,X5: subst,X6: subst] :
( ( X1 @ ( comp @ X3 @ X6 ) @ ( sub @ X4 @ X6 ) @ X5 )
=> ( X1 @ X3 @ X4 @ ( comp @ X6 @ X5 ) ) )
=> ( ! [X3: term] :
( ( var @ ( sub @ X3 @ id ) )
=> ( X1 @ id @ X3 @ id ) )
=> ( ! [X3: term] :
( ( X2 @ X3 )
= ( X1 @ id @ X3 @ id ) )
=> ! [X3: term] :
( ( var @ X3 )
=> ( X2 @ X3 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
introduced(assumption,[]) ).
thf(h29,assumption,
! [X1: term > $o] :
( ( X1 @ one )
=> ( ! [X2: term] :
( ( var @ X2 )
=> ( ( X1 @ X2 )
=> ( X1 @ ( sub @ X2 @ sh ) ) ) )
=> ! [X2: term] :
( ( var @ X2 )
=> ( X1 @ X2 ) ) ) ),
introduced(assumption,[]) ).
thf(h30,assumption,
~ ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ X1 @ X3 )
= ( ap @ X2 @ X4 ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ X1 @ X3 )
= ( ap @ X2 @ X4 ) )
=> ( X3 = X4 ) )
=> ( ! [X1: term,X2: term] :
( ( ( lam @ X1 )
= ( lam @ X2 ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term] :
( ( ( sub @ X1 @ sh )
= ( sub @ X2 @ sh ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term,X3: term] :
( ( lam @ X1 )
!= ( ap @ X2 @ X3 ) )
=> ( ! [X1: term,X2: term] :
~ ( var @ ( ap @ X1 @ X2 ) )
=> ( ! [X1: term] :
~ ( var @ ( lam @ X1 ) )
=> ( ! [X1: term > $o] :
( ! [X2: term] :
( ( var @ X2 )
=> ( X1 @ X2 ) )
=> ( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ( X1 @ X2 )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term] : ( X1 @ X2 ) ) ) )
=> ( ! [X1: term > $o,X2: term,X3: subst] :
( ! [X4: term] :
( ( var @ X4 )
=> ( X1 @ ( sub @ X4 @ X3 ) ) )
=> ( ( X1 @ X2 )
=> ! [X4: term] :
( ( var @ X4 )
=> ( X1 @ ( sub @ X4 @ ( push @ X2 @ X3 ) ) ) ) ) )
=> ( ! [X1: term > $o] :
( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ! [X3: term] :
( ( X1 @ X3 )
=> ( X1 @ ( sub @ X2 @ ( push @ X3 @ id ) ) ) )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term,X3: subst] :
( ! [X4: term] :
( ( var @ X4 )
=> ( X1 @ ( sub @ X4 @ X3 ) ) )
=> ( X1 @ ( sub @ X2 @ X3 ) ) ) ) )
=> ( ! [X1: term > $o] :
( ! [X2: term] :
( ( var @ X2 )
=> ( X1 @ X2 ) )
=> ( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ! [X3: term] :
( ( X1 @ X3 )
=> ( X1 @ ( sub @ X2 @ ( push @ X3 @ id ) ) ) )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term] : ( X1 @ X2 ) ) ) )
=> ( ~ ( ~ ( ! [X1: subst,X2: subst,X3: subst] :
( ( comp @ ( comp @ X1 @ X2 ) @ X3 )
= ( comp @ X1 @ ( comp @ X2 @ X3 ) ) )
=> ~ ! [X1: subst] :
( ( comp @ id @ X1 )
= X1 ) )
=> ~ ! [X1: subst] :
( ( comp @ X1 @ id )
= X1 ) )
=> ( ~ ( ! [X1: term,X2: subst,X3: subst] :
( ( sub @ ( sub @ X1 @ X2 ) @ X3 )
= ( sub @ X1 @ ( comp @ X2 @ X3 ) ) )
=> ~ sP6 )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ ( sub @ X1 @ id ) @ X3 )
= ( ap @ ( sub @ X2 @ id ) @ X4 ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ ( sub @ X1 @ id ) @ X3 )
= ( ap @ ( sub @ X2 @ id ) @ X4 ) )
=> ( X3 = X4 ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ! [X2: subst > term > term] :
( ! [X3: subst,X4: term,X5: subst] :
( ( sub @ ( X2 @ X3 @ X4 ) @ X5 )
= ( X2 @ ( comp @ X3 @ X5 ) @ ( sub @ X4 @ X5 ) ) )
=> ( ( ( lam @ ( X1 @ sh @ one ) )
= ( lam @ ( X2 @ sh @ one ) ) )
=> ! [X3: subst,X4: term] :
( ( X1 @ X3 @ X4 )
= ( X2 @ X3 @ X4 ) ) ) ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ! [X2: term,X3: term] :
( ( lam @ ( X1 @ sh @ one ) )
!= ( ap @ ( sub @ X2 @ id ) @ X3 ) ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ~ ( var @ ( sub @ ( lam @ ( X1 @ sh @ one ) ) @ id ) ) )
=> ( ! [X1: term,X2: term] :
~ ( var @ ( sub @ ( ap @ ( sub @ X1 @ id ) @ X2 ) @ id ) )
=> ! [X1: subst > term > subst > $o,X2: term > $o] :
( ! [X3: subst,X4: term,X5: subst,X6: subst] :
( ( X1 @ X3 @ X4 @ ( comp @ X6 @ X5 ) )
=> ( X1 @ ( comp @ X3 @ X6 ) @ ( sub @ X4 @ X6 ) @ X5 ) )
=> ( ! [X3: subst,X4: term,X5: subst,X6: subst] :
( ( X1 @ ( comp @ X3 @ X6 ) @ ( sub @ X4 @ X6 ) @ X5 )
=> ( X1 @ X3 @ X4 @ ( comp @ X6 @ X5 ) ) )
=> ( ! [X3: term] :
( ( var @ ( sub @ X3 @ id ) )
=> ( X1 @ id @ X3 @ id ) )
=> ( ! [X3: term] :
( ( X2 @ X3 )
= ( X1 @ id @ X3 @ id ) )
=> ! [X3: term] :
( ( var @ X3 )
=> ( X2 @ X3 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
introduced(assumption,[]) ).
thf(h31,assumption,
! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ X1 @ X3 )
= ( ap @ X2 @ X4 ) )
=> ( X1 = X2 ) ),
introduced(assumption,[]) ).
thf(h32,assumption,
~ ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ X1 @ X3 )
= ( ap @ X2 @ X4 ) )
=> ( X3 = X4 ) )
=> ( ! [X1: term,X2: term] :
( ( ( lam @ X1 )
= ( lam @ X2 ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term] :
( ( ( sub @ X1 @ sh )
= ( sub @ X2 @ sh ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term,X3: term] :
( ( lam @ X1 )
!= ( ap @ X2 @ X3 ) )
=> ( ! [X1: term,X2: term] :
~ ( var @ ( ap @ X1 @ X2 ) )
=> ( ! [X1: term] :
~ ( var @ ( lam @ X1 ) )
=> ( ! [X1: term > $o] :
( ! [X2: term] :
( ( var @ X2 )
=> ( X1 @ X2 ) )
=> ( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ( X1 @ X2 )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term] : ( X1 @ X2 ) ) ) )
=> ( ! [X1: term > $o,X2: term,X3: subst] :
( ! [X4: term] :
( ( var @ X4 )
=> ( X1 @ ( sub @ X4 @ X3 ) ) )
=> ( ( X1 @ X2 )
=> ! [X4: term] :
( ( var @ X4 )
=> ( X1 @ ( sub @ X4 @ ( push @ X2 @ X3 ) ) ) ) ) )
=> ( ! [X1: term > $o] :
( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ! [X3: term] :
( ( X1 @ X3 )
=> ( X1 @ ( sub @ X2 @ ( push @ X3 @ id ) ) ) )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term,X3: subst] :
( ! [X4: term] :
( ( var @ X4 )
=> ( X1 @ ( sub @ X4 @ X3 ) ) )
=> ( X1 @ ( sub @ X2 @ X3 ) ) ) ) )
=> ( ! [X1: term > $o] :
( ! [X2: term] :
( ( var @ X2 )
=> ( X1 @ X2 ) )
=> ( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ! [X3: term] :
( ( X1 @ X3 )
=> ( X1 @ ( sub @ X2 @ ( push @ X3 @ id ) ) ) )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term] : ( X1 @ X2 ) ) ) )
=> ( ~ ( ~ ( ! [X1: subst,X2: subst,X3: subst] :
( ( comp @ ( comp @ X1 @ X2 ) @ X3 )
= ( comp @ X1 @ ( comp @ X2 @ X3 ) ) )
=> ~ ! [X1: subst] :
( ( comp @ id @ X1 )
= X1 ) )
=> ~ ! [X1: subst] :
( ( comp @ X1 @ id )
= X1 ) )
=> ( ~ ( ! [X1: term,X2: subst,X3: subst] :
( ( sub @ ( sub @ X1 @ X2 ) @ X3 )
= ( sub @ X1 @ ( comp @ X2 @ X3 ) ) )
=> ~ sP6 )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ ( sub @ X1 @ id ) @ X3 )
= ( ap @ ( sub @ X2 @ id ) @ X4 ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ ( sub @ X1 @ id ) @ X3 )
= ( ap @ ( sub @ X2 @ id ) @ X4 ) )
=> ( X3 = X4 ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ! [X2: subst > term > term] :
( ! [X3: subst,X4: term,X5: subst] :
( ( sub @ ( X2 @ X3 @ X4 ) @ X5 )
= ( X2 @ ( comp @ X3 @ X5 ) @ ( sub @ X4 @ X5 ) ) )
=> ( ( ( lam @ ( X1 @ sh @ one ) )
= ( lam @ ( X2 @ sh @ one ) ) )
=> ! [X3: subst,X4: term] :
( ( X1 @ X3 @ X4 )
= ( X2 @ X3 @ X4 ) ) ) ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ! [X2: term,X3: term] :
( ( lam @ ( X1 @ sh @ one ) )
!= ( ap @ ( sub @ X2 @ id ) @ X3 ) ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ~ ( var @ ( sub @ ( lam @ ( X1 @ sh @ one ) ) @ id ) ) )
=> ( ! [X1: term,X2: term] :
~ ( var @ ( sub @ ( ap @ ( sub @ X1 @ id ) @ X2 ) @ id ) )
=> ! [X1: subst > term > subst > $o,X2: term > $o] :
( ! [X3: subst,X4: term,X5: subst,X6: subst] :
( ( X1 @ X3 @ X4 @ ( comp @ X6 @ X5 ) )
=> ( X1 @ ( comp @ X3 @ X6 ) @ ( sub @ X4 @ X6 ) @ X5 ) )
=> ( ! [X3: subst,X4: term,X5: subst,X6: subst] :
( ( X1 @ ( comp @ X3 @ X6 ) @ ( sub @ X4 @ X6 ) @ X5 )
=> ( X1 @ X3 @ X4 @ ( comp @ X6 @ X5 ) ) )
=> ( ! [X3: term] :
( ( var @ ( sub @ X3 @ id ) )
=> ( X1 @ id @ X3 @ id ) )
=> ( ! [X3: term] :
( ( X2 @ X3 )
= ( X1 @ id @ X3 @ id ) )
=> ! [X3: term] :
( ( var @ X3 )
=> ( X2 @ X3 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
introduced(assumption,[]) ).
thf(h33,assumption,
! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ X1 @ X3 )
= ( ap @ X2 @ X4 ) )
=> ( X3 = X4 ) ),
introduced(assumption,[]) ).
thf(h34,assumption,
~ ( ! [X1: term,X2: term] :
( ( ( lam @ X1 )
= ( lam @ X2 ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term] :
( ( ( sub @ X1 @ sh )
= ( sub @ X2 @ sh ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term,X3: term] :
( ( lam @ X1 )
!= ( ap @ X2 @ X3 ) )
=> ( ! [X1: term,X2: term] :
~ ( var @ ( ap @ X1 @ X2 ) )
=> ( ! [X1: term] :
~ ( var @ ( lam @ X1 ) )
=> ( ! [X1: term > $o] :
( ! [X2: term] :
( ( var @ X2 )
=> ( X1 @ X2 ) )
=> ( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ( X1 @ X2 )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term] : ( X1 @ X2 ) ) ) )
=> ( ! [X1: term > $o,X2: term,X3: subst] :
( ! [X4: term] :
( ( var @ X4 )
=> ( X1 @ ( sub @ X4 @ X3 ) ) )
=> ( ( X1 @ X2 )
=> ! [X4: term] :
( ( var @ X4 )
=> ( X1 @ ( sub @ X4 @ ( push @ X2 @ X3 ) ) ) ) ) )
=> ( ! [X1: term > $o] :
( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ! [X3: term] :
( ( X1 @ X3 )
=> ( X1 @ ( sub @ X2 @ ( push @ X3 @ id ) ) ) )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term,X3: subst] :
( ! [X4: term] :
( ( var @ X4 )
=> ( X1 @ ( sub @ X4 @ X3 ) ) )
=> ( X1 @ ( sub @ X2 @ X3 ) ) ) ) )
=> ( ! [X1: term > $o] :
( ! [X2: term] :
( ( var @ X2 )
=> ( X1 @ X2 ) )
=> ( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ! [X3: term] :
( ( X1 @ X3 )
=> ( X1 @ ( sub @ X2 @ ( push @ X3 @ id ) ) ) )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term] : ( X1 @ X2 ) ) ) )
=> ( ~ ( ~ ( ! [X1: subst,X2: subst,X3: subst] :
( ( comp @ ( comp @ X1 @ X2 ) @ X3 )
= ( comp @ X1 @ ( comp @ X2 @ X3 ) ) )
=> ~ ! [X1: subst] :
( ( comp @ id @ X1 )
= X1 ) )
=> ~ ! [X1: subst] :
( ( comp @ X1 @ id )
= X1 ) )
=> ( ~ ( ! [X1: term,X2: subst,X3: subst] :
( ( sub @ ( sub @ X1 @ X2 ) @ X3 )
= ( sub @ X1 @ ( comp @ X2 @ X3 ) ) )
=> ~ sP6 )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ ( sub @ X1 @ id ) @ X3 )
= ( ap @ ( sub @ X2 @ id ) @ X4 ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ ( sub @ X1 @ id ) @ X3 )
= ( ap @ ( sub @ X2 @ id ) @ X4 ) )
=> ( X3 = X4 ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ! [X2: subst > term > term] :
( ! [X3: subst,X4: term,X5: subst] :
( ( sub @ ( X2 @ X3 @ X4 ) @ X5 )
= ( X2 @ ( comp @ X3 @ X5 ) @ ( sub @ X4 @ X5 ) ) )
=> ( ( ( lam @ ( X1 @ sh @ one ) )
= ( lam @ ( X2 @ sh @ one ) ) )
=> ! [X3: subst,X4: term] :
( ( X1 @ X3 @ X4 )
= ( X2 @ X3 @ X4 ) ) ) ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ! [X2: term,X3: term] :
( ( lam @ ( X1 @ sh @ one ) )
!= ( ap @ ( sub @ X2 @ id ) @ X3 ) ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ~ ( var @ ( sub @ ( lam @ ( X1 @ sh @ one ) ) @ id ) ) )
=> ( ! [X1: term,X2: term] :
~ ( var @ ( sub @ ( ap @ ( sub @ X1 @ id ) @ X2 ) @ id ) )
=> ! [X1: subst > term > subst > $o,X2: term > $o] :
( ! [X3: subst,X4: term,X5: subst,X6: subst] :
( ( X1 @ X3 @ X4 @ ( comp @ X6 @ X5 ) )
=> ( X1 @ ( comp @ X3 @ X6 ) @ ( sub @ X4 @ X6 ) @ X5 ) )
=> ( ! [X3: subst,X4: term,X5: subst,X6: subst] :
( ( X1 @ ( comp @ X3 @ X6 ) @ ( sub @ X4 @ X6 ) @ X5 )
=> ( X1 @ X3 @ X4 @ ( comp @ X6 @ X5 ) ) )
=> ( ! [X3: term] :
( ( var @ ( sub @ X3 @ id ) )
=> ( X1 @ id @ X3 @ id ) )
=> ( ! [X3: term] :
( ( X2 @ X3 )
= ( X1 @ id @ X3 @ id ) )
=> ! [X3: term] :
( ( var @ X3 )
=> ( X2 @ X3 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
introduced(assumption,[]) ).
thf(h35,assumption,
! [X1: term,X2: term] :
( ( ( lam @ X1 )
= ( lam @ X2 ) )
=> ( X1 = X2 ) ),
introduced(assumption,[]) ).
thf(h36,assumption,
~ ( ! [X1: term,X2: term] :
( ( ( sub @ X1 @ sh )
= ( sub @ X2 @ sh ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term,X3: term] :
( ( lam @ X1 )
!= ( ap @ X2 @ X3 ) )
=> ( ! [X1: term,X2: term] :
~ ( var @ ( ap @ X1 @ X2 ) )
=> ( ! [X1: term] :
~ ( var @ ( lam @ X1 ) )
=> ( ! [X1: term > $o] :
( ! [X2: term] :
( ( var @ X2 )
=> ( X1 @ X2 ) )
=> ( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ( X1 @ X2 )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term] : ( X1 @ X2 ) ) ) )
=> ( ! [X1: term > $o,X2: term,X3: subst] :
( ! [X4: term] :
( ( var @ X4 )
=> ( X1 @ ( sub @ X4 @ X3 ) ) )
=> ( ( X1 @ X2 )
=> ! [X4: term] :
( ( var @ X4 )
=> ( X1 @ ( sub @ X4 @ ( push @ X2 @ X3 ) ) ) ) ) )
=> ( ! [X1: term > $o] :
( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ! [X3: term] :
( ( X1 @ X3 )
=> ( X1 @ ( sub @ X2 @ ( push @ X3 @ id ) ) ) )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term,X3: subst] :
( ! [X4: term] :
( ( var @ X4 )
=> ( X1 @ ( sub @ X4 @ X3 ) ) )
=> ( X1 @ ( sub @ X2 @ X3 ) ) ) ) )
=> ( ! [X1: term > $o] :
( ! [X2: term] :
( ( var @ X2 )
=> ( X1 @ X2 ) )
=> ( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ! [X3: term] :
( ( X1 @ X3 )
=> ( X1 @ ( sub @ X2 @ ( push @ X3 @ id ) ) ) )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term] : ( X1 @ X2 ) ) ) )
=> ( ~ ( ~ ( ! [X1: subst,X2: subst,X3: subst] :
( ( comp @ ( comp @ X1 @ X2 ) @ X3 )
= ( comp @ X1 @ ( comp @ X2 @ X3 ) ) )
=> ~ ! [X1: subst] :
( ( comp @ id @ X1 )
= X1 ) )
=> ~ ! [X1: subst] :
( ( comp @ X1 @ id )
= X1 ) )
=> ( ~ ( ! [X1: term,X2: subst,X3: subst] :
( ( sub @ ( sub @ X1 @ X2 ) @ X3 )
= ( sub @ X1 @ ( comp @ X2 @ X3 ) ) )
=> ~ sP6 )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ ( sub @ X1 @ id ) @ X3 )
= ( ap @ ( sub @ X2 @ id ) @ X4 ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ ( sub @ X1 @ id ) @ X3 )
= ( ap @ ( sub @ X2 @ id ) @ X4 ) )
=> ( X3 = X4 ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ! [X2: subst > term > term] :
( ! [X3: subst,X4: term,X5: subst] :
( ( sub @ ( X2 @ X3 @ X4 ) @ X5 )
= ( X2 @ ( comp @ X3 @ X5 ) @ ( sub @ X4 @ X5 ) ) )
=> ( ( ( lam @ ( X1 @ sh @ one ) )
= ( lam @ ( X2 @ sh @ one ) ) )
=> ! [X3: subst,X4: term] :
( ( X1 @ X3 @ X4 )
= ( X2 @ X3 @ X4 ) ) ) ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ! [X2: term,X3: term] :
( ( lam @ ( X1 @ sh @ one ) )
!= ( ap @ ( sub @ X2 @ id ) @ X3 ) ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ~ ( var @ ( sub @ ( lam @ ( X1 @ sh @ one ) ) @ id ) ) )
=> ( ! [X1: term,X2: term] :
~ ( var @ ( sub @ ( ap @ ( sub @ X1 @ id ) @ X2 ) @ id ) )
=> ! [X1: subst > term > subst > $o,X2: term > $o] :
( ! [X3: subst,X4: term,X5: subst,X6: subst] :
( ( X1 @ X3 @ X4 @ ( comp @ X6 @ X5 ) )
=> ( X1 @ ( comp @ X3 @ X6 ) @ ( sub @ X4 @ X6 ) @ X5 ) )
=> ( ! [X3: subst,X4: term,X5: subst,X6: subst] :
( ( X1 @ ( comp @ X3 @ X6 ) @ ( sub @ X4 @ X6 ) @ X5 )
=> ( X1 @ X3 @ X4 @ ( comp @ X6 @ X5 ) ) )
=> ( ! [X3: term] :
( ( var @ ( sub @ X3 @ id ) )
=> ( X1 @ id @ X3 @ id ) )
=> ( ! [X3: term] :
( ( X2 @ X3 )
= ( X1 @ id @ X3 @ id ) )
=> ! [X3: term] :
( ( var @ X3 )
=> ( X2 @ X3 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
introduced(assumption,[]) ).
thf(h37,assumption,
! [X1: term,X2: term] :
( ( ( sub @ X1 @ sh )
= ( sub @ X2 @ sh ) )
=> ( X1 = X2 ) ),
introduced(assumption,[]) ).
thf(h38,assumption,
~ ( ! [X1: term,X2: term,X3: term] :
( ( lam @ X1 )
!= ( ap @ X2 @ X3 ) )
=> ( ! [X1: term,X2: term] :
~ ( var @ ( ap @ X1 @ X2 ) )
=> ( ! [X1: term] :
~ ( var @ ( lam @ X1 ) )
=> ( ! [X1: term > $o] :
( ! [X2: term] :
( ( var @ X2 )
=> ( X1 @ X2 ) )
=> ( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ( X1 @ X2 )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term] : ( X1 @ X2 ) ) ) )
=> ( ! [X1: term > $o,X2: term,X3: subst] :
( ! [X4: term] :
( ( var @ X4 )
=> ( X1 @ ( sub @ X4 @ X3 ) ) )
=> ( ( X1 @ X2 )
=> ! [X4: term] :
( ( var @ X4 )
=> ( X1 @ ( sub @ X4 @ ( push @ X2 @ X3 ) ) ) ) ) )
=> ( ! [X1: term > $o] :
( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ! [X3: term] :
( ( X1 @ X3 )
=> ( X1 @ ( sub @ X2 @ ( push @ X3 @ id ) ) ) )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term,X3: subst] :
( ! [X4: term] :
( ( var @ X4 )
=> ( X1 @ ( sub @ X4 @ X3 ) ) )
=> ( X1 @ ( sub @ X2 @ X3 ) ) ) ) )
=> ( ! [X1: term > $o] :
( ! [X2: term] :
( ( var @ X2 )
=> ( X1 @ X2 ) )
=> ( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ! [X3: term] :
( ( X1 @ X3 )
=> ( X1 @ ( sub @ X2 @ ( push @ X3 @ id ) ) ) )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term] : ( X1 @ X2 ) ) ) )
=> ( ~ ( ~ ( ! [X1: subst,X2: subst,X3: subst] :
( ( comp @ ( comp @ X1 @ X2 ) @ X3 )
= ( comp @ X1 @ ( comp @ X2 @ X3 ) ) )
=> ~ ! [X1: subst] :
( ( comp @ id @ X1 )
= X1 ) )
=> ~ ! [X1: subst] :
( ( comp @ X1 @ id )
= X1 ) )
=> ( ~ ( ! [X1: term,X2: subst,X3: subst] :
( ( sub @ ( sub @ X1 @ X2 ) @ X3 )
= ( sub @ X1 @ ( comp @ X2 @ X3 ) ) )
=> ~ sP6 )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ ( sub @ X1 @ id ) @ X3 )
= ( ap @ ( sub @ X2 @ id ) @ X4 ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ ( sub @ X1 @ id ) @ X3 )
= ( ap @ ( sub @ X2 @ id ) @ X4 ) )
=> ( X3 = X4 ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ! [X2: subst > term > term] :
( ! [X3: subst,X4: term,X5: subst] :
( ( sub @ ( X2 @ X3 @ X4 ) @ X5 )
= ( X2 @ ( comp @ X3 @ X5 ) @ ( sub @ X4 @ X5 ) ) )
=> ( ( ( lam @ ( X1 @ sh @ one ) )
= ( lam @ ( X2 @ sh @ one ) ) )
=> ! [X3: subst,X4: term] :
( ( X1 @ X3 @ X4 )
= ( X2 @ X3 @ X4 ) ) ) ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ! [X2: term,X3: term] :
( ( lam @ ( X1 @ sh @ one ) )
!= ( ap @ ( sub @ X2 @ id ) @ X3 ) ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ~ ( var @ ( sub @ ( lam @ ( X1 @ sh @ one ) ) @ id ) ) )
=> ( ! [X1: term,X2: term] :
~ ( var @ ( sub @ ( ap @ ( sub @ X1 @ id ) @ X2 ) @ id ) )
=> ! [X1: subst > term > subst > $o,X2: term > $o] :
( ! [X3: subst,X4: term,X5: subst,X6: subst] :
( ( X1 @ X3 @ X4 @ ( comp @ X6 @ X5 ) )
=> ( X1 @ ( comp @ X3 @ X6 ) @ ( sub @ X4 @ X6 ) @ X5 ) )
=> ( ! [X3: subst,X4: term,X5: subst,X6: subst] :
( ( X1 @ ( comp @ X3 @ X6 ) @ ( sub @ X4 @ X6 ) @ X5 )
=> ( X1 @ X3 @ X4 @ ( comp @ X6 @ X5 ) ) )
=> ( ! [X3: term] :
( ( var @ ( sub @ X3 @ id ) )
=> ( X1 @ id @ X3 @ id ) )
=> ( ! [X3: term] :
( ( X2 @ X3 )
= ( X1 @ id @ X3 @ id ) )
=> ! [X3: term] :
( ( var @ X3 )
=> ( X2 @ X3 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
introduced(assumption,[]) ).
thf(h39,assumption,
! [X1: term,X2: term,X3: term] :
( ( lam @ X1 )
!= ( ap @ X2 @ X3 ) ),
introduced(assumption,[]) ).
thf(h40,assumption,
~ ( ! [X1: term,X2: term] :
~ ( var @ ( ap @ X1 @ X2 ) )
=> ( ! [X1: term] :
~ ( var @ ( lam @ X1 ) )
=> ( ! [X1: term > $o] :
( ! [X2: term] :
( ( var @ X2 )
=> ( X1 @ X2 ) )
=> ( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ( X1 @ X2 )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term] : ( X1 @ X2 ) ) ) )
=> ( ! [X1: term > $o,X2: term,X3: subst] :
( ! [X4: term] :
( ( var @ X4 )
=> ( X1 @ ( sub @ X4 @ X3 ) ) )
=> ( ( X1 @ X2 )
=> ! [X4: term] :
( ( var @ X4 )
=> ( X1 @ ( sub @ X4 @ ( push @ X2 @ X3 ) ) ) ) ) )
=> ( ! [X1: term > $o] :
( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ! [X3: term] :
( ( X1 @ X3 )
=> ( X1 @ ( sub @ X2 @ ( push @ X3 @ id ) ) ) )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term,X3: subst] :
( ! [X4: term] :
( ( var @ X4 )
=> ( X1 @ ( sub @ X4 @ X3 ) ) )
=> ( X1 @ ( sub @ X2 @ X3 ) ) ) ) )
=> ( ! [X1: term > $o] :
( ! [X2: term] :
( ( var @ X2 )
=> ( X1 @ X2 ) )
=> ( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ! [X3: term] :
( ( X1 @ X3 )
=> ( X1 @ ( sub @ X2 @ ( push @ X3 @ id ) ) ) )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term] : ( X1 @ X2 ) ) ) )
=> ( ~ ( ~ ( ! [X1: subst,X2: subst,X3: subst] :
( ( comp @ ( comp @ X1 @ X2 ) @ X3 )
= ( comp @ X1 @ ( comp @ X2 @ X3 ) ) )
=> ~ ! [X1: subst] :
( ( comp @ id @ X1 )
= X1 ) )
=> ~ ! [X1: subst] :
( ( comp @ X1 @ id )
= X1 ) )
=> ( ~ ( ! [X1: term,X2: subst,X3: subst] :
( ( sub @ ( sub @ X1 @ X2 ) @ X3 )
= ( sub @ X1 @ ( comp @ X2 @ X3 ) ) )
=> ~ sP6 )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ ( sub @ X1 @ id ) @ X3 )
= ( ap @ ( sub @ X2 @ id ) @ X4 ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ ( sub @ X1 @ id ) @ X3 )
= ( ap @ ( sub @ X2 @ id ) @ X4 ) )
=> ( X3 = X4 ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ! [X2: subst > term > term] :
( ! [X3: subst,X4: term,X5: subst] :
( ( sub @ ( X2 @ X3 @ X4 ) @ X5 )
= ( X2 @ ( comp @ X3 @ X5 ) @ ( sub @ X4 @ X5 ) ) )
=> ( ( ( lam @ ( X1 @ sh @ one ) )
= ( lam @ ( X2 @ sh @ one ) ) )
=> ! [X3: subst,X4: term] :
( ( X1 @ X3 @ X4 )
= ( X2 @ X3 @ X4 ) ) ) ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ! [X2: term,X3: term] :
( ( lam @ ( X1 @ sh @ one ) )
!= ( ap @ ( sub @ X2 @ id ) @ X3 ) ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ~ ( var @ ( sub @ ( lam @ ( X1 @ sh @ one ) ) @ id ) ) )
=> ( ! [X1: term,X2: term] :
~ ( var @ ( sub @ ( ap @ ( sub @ X1 @ id ) @ X2 ) @ id ) )
=> ! [X1: subst > term > subst > $o,X2: term > $o] :
( ! [X3: subst,X4: term,X5: subst,X6: subst] :
( ( X1 @ X3 @ X4 @ ( comp @ X6 @ X5 ) )
=> ( X1 @ ( comp @ X3 @ X6 ) @ ( sub @ X4 @ X6 ) @ X5 ) )
=> ( ! [X3: subst,X4: term,X5: subst,X6: subst] :
( ( X1 @ ( comp @ X3 @ X6 ) @ ( sub @ X4 @ X6 ) @ X5 )
=> ( X1 @ X3 @ X4 @ ( comp @ X6 @ X5 ) ) )
=> ( ! [X3: term] :
( ( var @ ( sub @ X3 @ id ) )
=> ( X1 @ id @ X3 @ id ) )
=> ( ! [X3: term] :
( ( X2 @ X3 )
= ( X1 @ id @ X3 @ id ) )
=> ! [X3: term] :
( ( var @ X3 )
=> ( X2 @ X3 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
introduced(assumption,[]) ).
thf(h41,assumption,
! [X1: term,X2: term] :
~ ( var @ ( ap @ X1 @ X2 ) ),
introduced(assumption,[]) ).
thf(h42,assumption,
~ ( ! [X1: term] :
~ ( var @ ( lam @ X1 ) )
=> ( ! [X1: term > $o] :
( ! [X2: term] :
( ( var @ X2 )
=> ( X1 @ X2 ) )
=> ( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ( X1 @ X2 )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term] : ( X1 @ X2 ) ) ) )
=> ( ! [X1: term > $o,X2: term,X3: subst] :
( ! [X4: term] :
( ( var @ X4 )
=> ( X1 @ ( sub @ X4 @ X3 ) ) )
=> ( ( X1 @ X2 )
=> ! [X4: term] :
( ( var @ X4 )
=> ( X1 @ ( sub @ X4 @ ( push @ X2 @ X3 ) ) ) ) ) )
=> ( ! [X1: term > $o] :
( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ! [X3: term] :
( ( X1 @ X3 )
=> ( X1 @ ( sub @ X2 @ ( push @ X3 @ id ) ) ) )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term,X3: subst] :
( ! [X4: term] :
( ( var @ X4 )
=> ( X1 @ ( sub @ X4 @ X3 ) ) )
=> ( X1 @ ( sub @ X2 @ X3 ) ) ) ) )
=> ( ! [X1: term > $o] :
( ! [X2: term] :
( ( var @ X2 )
=> ( X1 @ X2 ) )
=> ( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ! [X3: term] :
( ( X1 @ X3 )
=> ( X1 @ ( sub @ X2 @ ( push @ X3 @ id ) ) ) )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term] : ( X1 @ X2 ) ) ) )
=> ( ~ ( ~ ( ! [X1: subst,X2: subst,X3: subst] :
( ( comp @ ( comp @ X1 @ X2 ) @ X3 )
= ( comp @ X1 @ ( comp @ X2 @ X3 ) ) )
=> ~ ! [X1: subst] :
( ( comp @ id @ X1 )
= X1 ) )
=> ~ ! [X1: subst] :
( ( comp @ X1 @ id )
= X1 ) )
=> ( ~ ( ! [X1: term,X2: subst,X3: subst] :
( ( sub @ ( sub @ X1 @ X2 ) @ X3 )
= ( sub @ X1 @ ( comp @ X2 @ X3 ) ) )
=> ~ sP6 )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ ( sub @ X1 @ id ) @ X3 )
= ( ap @ ( sub @ X2 @ id ) @ X4 ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ ( sub @ X1 @ id ) @ X3 )
= ( ap @ ( sub @ X2 @ id ) @ X4 ) )
=> ( X3 = X4 ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ! [X2: subst > term > term] :
( ! [X3: subst,X4: term,X5: subst] :
( ( sub @ ( X2 @ X3 @ X4 ) @ X5 )
= ( X2 @ ( comp @ X3 @ X5 ) @ ( sub @ X4 @ X5 ) ) )
=> ( ( ( lam @ ( X1 @ sh @ one ) )
= ( lam @ ( X2 @ sh @ one ) ) )
=> ! [X3: subst,X4: term] :
( ( X1 @ X3 @ X4 )
= ( X2 @ X3 @ X4 ) ) ) ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ! [X2: term,X3: term] :
( ( lam @ ( X1 @ sh @ one ) )
!= ( ap @ ( sub @ X2 @ id ) @ X3 ) ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ~ ( var @ ( sub @ ( lam @ ( X1 @ sh @ one ) ) @ id ) ) )
=> ( ! [X1: term,X2: term] :
~ ( var @ ( sub @ ( ap @ ( sub @ X1 @ id ) @ X2 ) @ id ) )
=> ! [X1: subst > term > subst > $o,X2: term > $o] :
( ! [X3: subst,X4: term,X5: subst,X6: subst] :
( ( X1 @ X3 @ X4 @ ( comp @ X6 @ X5 ) )
=> ( X1 @ ( comp @ X3 @ X6 ) @ ( sub @ X4 @ X6 ) @ X5 ) )
=> ( ! [X3: subst,X4: term,X5: subst,X6: subst] :
( ( X1 @ ( comp @ X3 @ X6 ) @ ( sub @ X4 @ X6 ) @ X5 )
=> ( X1 @ X3 @ X4 @ ( comp @ X6 @ X5 ) ) )
=> ( ! [X3: term] :
( ( var @ ( sub @ X3 @ id ) )
=> ( X1 @ id @ X3 @ id ) )
=> ( ! [X3: term] :
( ( X2 @ X3 )
= ( X1 @ id @ X3 @ id ) )
=> ! [X3: term] :
( ( var @ X3 )
=> ( X2 @ X3 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
introduced(assumption,[]) ).
thf(h43,assumption,
! [X1: term] :
~ ( var @ ( lam @ X1 ) ),
introduced(assumption,[]) ).
thf(h44,assumption,
~ ( ! [X1: term > $o] :
( ! [X2: term] :
( ( var @ X2 )
=> ( X1 @ X2 ) )
=> ( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ( X1 @ X2 )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term] : ( X1 @ X2 ) ) ) )
=> ( ! [X1: term > $o,X2: term,X3: subst] :
( ! [X4: term] :
( ( var @ X4 )
=> ( X1 @ ( sub @ X4 @ X3 ) ) )
=> ( ( X1 @ X2 )
=> ! [X4: term] :
( ( var @ X4 )
=> ( X1 @ ( sub @ X4 @ ( push @ X2 @ X3 ) ) ) ) ) )
=> ( ! [X1: term > $o] :
( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ! [X3: term] :
( ( X1 @ X3 )
=> ( X1 @ ( sub @ X2 @ ( push @ X3 @ id ) ) ) )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term,X3: subst] :
( ! [X4: term] :
( ( var @ X4 )
=> ( X1 @ ( sub @ X4 @ X3 ) ) )
=> ( X1 @ ( sub @ X2 @ X3 ) ) ) ) )
=> ( ! [X1: term > $o] :
( ! [X2: term] :
( ( var @ X2 )
=> ( X1 @ X2 ) )
=> ( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ! [X3: term] :
( ( X1 @ X3 )
=> ( X1 @ ( sub @ X2 @ ( push @ X3 @ id ) ) ) )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term] : ( X1 @ X2 ) ) ) )
=> ( ~ ( ~ ( ! [X1: subst,X2: subst,X3: subst] :
( ( comp @ ( comp @ X1 @ X2 ) @ X3 )
= ( comp @ X1 @ ( comp @ X2 @ X3 ) ) )
=> ~ ! [X1: subst] :
( ( comp @ id @ X1 )
= X1 ) )
=> ~ ! [X1: subst] :
( ( comp @ X1 @ id )
= X1 ) )
=> ( ~ ( ! [X1: term,X2: subst,X3: subst] :
( ( sub @ ( sub @ X1 @ X2 ) @ X3 )
= ( sub @ X1 @ ( comp @ X2 @ X3 ) ) )
=> ~ sP6 )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ ( sub @ X1 @ id ) @ X3 )
= ( ap @ ( sub @ X2 @ id ) @ X4 ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ ( sub @ X1 @ id ) @ X3 )
= ( ap @ ( sub @ X2 @ id ) @ X4 ) )
=> ( X3 = X4 ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ! [X2: subst > term > term] :
( ! [X3: subst,X4: term,X5: subst] :
( ( sub @ ( X2 @ X3 @ X4 ) @ X5 )
= ( X2 @ ( comp @ X3 @ X5 ) @ ( sub @ X4 @ X5 ) ) )
=> ( ( ( lam @ ( X1 @ sh @ one ) )
= ( lam @ ( X2 @ sh @ one ) ) )
=> ! [X3: subst,X4: term] :
( ( X1 @ X3 @ X4 )
= ( X2 @ X3 @ X4 ) ) ) ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ! [X2: term,X3: term] :
( ( lam @ ( X1 @ sh @ one ) )
!= ( ap @ ( sub @ X2 @ id ) @ X3 ) ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ~ ( var @ ( sub @ ( lam @ ( X1 @ sh @ one ) ) @ id ) ) )
=> ( ! [X1: term,X2: term] :
~ ( var @ ( sub @ ( ap @ ( sub @ X1 @ id ) @ X2 ) @ id ) )
=> ! [X1: subst > term > subst > $o,X2: term > $o] :
( ! [X3: subst,X4: term,X5: subst,X6: subst] :
( ( X1 @ X3 @ X4 @ ( comp @ X6 @ X5 ) )
=> ( X1 @ ( comp @ X3 @ X6 ) @ ( sub @ X4 @ X6 ) @ X5 ) )
=> ( ! [X3: subst,X4: term,X5: subst,X6: subst] :
( ( X1 @ ( comp @ X3 @ X6 ) @ ( sub @ X4 @ X6 ) @ X5 )
=> ( X1 @ X3 @ X4 @ ( comp @ X6 @ X5 ) ) )
=> ( ! [X3: term] :
( ( var @ ( sub @ X3 @ id ) )
=> ( X1 @ id @ X3 @ id ) )
=> ( ! [X3: term] :
( ( X2 @ X3 )
= ( X1 @ id @ X3 @ id ) )
=> ! [X3: term] :
( ( var @ X3 )
=> ( X2 @ X3 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
introduced(assumption,[]) ).
thf(h45,assumption,
! [X1: term > $o] :
( ! [X2: term] :
( ( var @ X2 )
=> ( X1 @ X2 ) )
=> ( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ( X1 @ X2 )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term] : ( X1 @ X2 ) ) ) ),
introduced(assumption,[]) ).
thf(h46,assumption,
~ ( ! [X1: term > $o,X2: term,X3: subst] :
( ! [X4: term] :
( ( var @ X4 )
=> ( X1 @ ( sub @ X4 @ X3 ) ) )
=> ( ( X1 @ X2 )
=> ! [X4: term] :
( ( var @ X4 )
=> ( X1 @ ( sub @ X4 @ ( push @ X2 @ X3 ) ) ) ) ) )
=> ( ! [X1: term > $o] :
( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ! [X3: term] :
( ( X1 @ X3 )
=> ( X1 @ ( sub @ X2 @ ( push @ X3 @ id ) ) ) )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term,X3: subst] :
( ! [X4: term] :
( ( var @ X4 )
=> ( X1 @ ( sub @ X4 @ X3 ) ) )
=> ( X1 @ ( sub @ X2 @ X3 ) ) ) ) )
=> ( ! [X1: term > $o] :
( ! [X2: term] :
( ( var @ X2 )
=> ( X1 @ X2 ) )
=> ( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ! [X3: term] :
( ( X1 @ X3 )
=> ( X1 @ ( sub @ X2 @ ( push @ X3 @ id ) ) ) )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term] : ( X1 @ X2 ) ) ) )
=> ( ~ ( ~ ( ! [X1: subst,X2: subst,X3: subst] :
( ( comp @ ( comp @ X1 @ X2 ) @ X3 )
= ( comp @ X1 @ ( comp @ X2 @ X3 ) ) )
=> ~ ! [X1: subst] :
( ( comp @ id @ X1 )
= X1 ) )
=> ~ ! [X1: subst] :
( ( comp @ X1 @ id )
= X1 ) )
=> ( ~ ( ! [X1: term,X2: subst,X3: subst] :
( ( sub @ ( sub @ X1 @ X2 ) @ X3 )
= ( sub @ X1 @ ( comp @ X2 @ X3 ) ) )
=> ~ sP6 )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ ( sub @ X1 @ id ) @ X3 )
= ( ap @ ( sub @ X2 @ id ) @ X4 ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ ( sub @ X1 @ id ) @ X3 )
= ( ap @ ( sub @ X2 @ id ) @ X4 ) )
=> ( X3 = X4 ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ! [X2: subst > term > term] :
( ! [X3: subst,X4: term,X5: subst] :
( ( sub @ ( X2 @ X3 @ X4 ) @ X5 )
= ( X2 @ ( comp @ X3 @ X5 ) @ ( sub @ X4 @ X5 ) ) )
=> ( ( ( lam @ ( X1 @ sh @ one ) )
= ( lam @ ( X2 @ sh @ one ) ) )
=> ! [X3: subst,X4: term] :
( ( X1 @ X3 @ X4 )
= ( X2 @ X3 @ X4 ) ) ) ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ! [X2: term,X3: term] :
( ( lam @ ( X1 @ sh @ one ) )
!= ( ap @ ( sub @ X2 @ id ) @ X3 ) ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ~ ( var @ ( sub @ ( lam @ ( X1 @ sh @ one ) ) @ id ) ) )
=> ( ! [X1: term,X2: term] :
~ ( var @ ( sub @ ( ap @ ( sub @ X1 @ id ) @ X2 ) @ id ) )
=> ! [X1: subst > term > subst > $o,X2: term > $o] :
( ! [X3: subst,X4: term,X5: subst,X6: subst] :
( ( X1 @ X3 @ X4 @ ( comp @ X6 @ X5 ) )
=> ( X1 @ ( comp @ X3 @ X6 ) @ ( sub @ X4 @ X6 ) @ X5 ) )
=> ( ! [X3: subst,X4: term,X5: subst,X6: subst] :
( ( X1 @ ( comp @ X3 @ X6 ) @ ( sub @ X4 @ X6 ) @ X5 )
=> ( X1 @ X3 @ X4 @ ( comp @ X6 @ X5 ) ) )
=> ( ! [X3: term] :
( ( var @ ( sub @ X3 @ id ) )
=> ( X1 @ id @ X3 @ id ) )
=> ( ! [X3: term] :
( ( X2 @ X3 )
= ( X1 @ id @ X3 @ id ) )
=> ! [X3: term] :
( ( var @ X3 )
=> ( X2 @ X3 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
introduced(assumption,[]) ).
thf(h47,assumption,
! [X1: term > $o,X2: term,X3: subst] :
( ! [X4: term] :
( ( var @ X4 )
=> ( X1 @ ( sub @ X4 @ X3 ) ) )
=> ( ( X1 @ X2 )
=> ! [X4: term] :
( ( var @ X4 )
=> ( X1 @ ( sub @ X4 @ ( push @ X2 @ X3 ) ) ) ) ) ),
introduced(assumption,[]) ).
thf(h48,assumption,
~ ( ! [X1: term > $o] :
( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ! [X3: term] :
( ( X1 @ X3 )
=> ( X1 @ ( sub @ X2 @ ( push @ X3 @ id ) ) ) )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term,X3: subst] :
( ! [X4: term] :
( ( var @ X4 )
=> ( X1 @ ( sub @ X4 @ X3 ) ) )
=> ( X1 @ ( sub @ X2 @ X3 ) ) ) ) )
=> ( ! [X1: term > $o] :
( ! [X2: term] :
( ( var @ X2 )
=> ( X1 @ X2 ) )
=> ( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ! [X3: term] :
( ( X1 @ X3 )
=> ( X1 @ ( sub @ X2 @ ( push @ X3 @ id ) ) ) )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term] : ( X1 @ X2 ) ) ) )
=> ( ~ ( ~ ( ! [X1: subst,X2: subst,X3: subst] :
( ( comp @ ( comp @ X1 @ X2 ) @ X3 )
= ( comp @ X1 @ ( comp @ X2 @ X3 ) ) )
=> ~ ! [X1: subst] :
( ( comp @ id @ X1 )
= X1 ) )
=> ~ ! [X1: subst] :
( ( comp @ X1 @ id )
= X1 ) )
=> ( ~ ( ! [X1: term,X2: subst,X3: subst] :
( ( sub @ ( sub @ X1 @ X2 ) @ X3 )
= ( sub @ X1 @ ( comp @ X2 @ X3 ) ) )
=> ~ sP6 )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ ( sub @ X1 @ id ) @ X3 )
= ( ap @ ( sub @ X2 @ id ) @ X4 ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ ( sub @ X1 @ id ) @ X3 )
= ( ap @ ( sub @ X2 @ id ) @ X4 ) )
=> ( X3 = X4 ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ! [X2: subst > term > term] :
( ! [X3: subst,X4: term,X5: subst] :
( ( sub @ ( X2 @ X3 @ X4 ) @ X5 )
= ( X2 @ ( comp @ X3 @ X5 ) @ ( sub @ X4 @ X5 ) ) )
=> ( ( ( lam @ ( X1 @ sh @ one ) )
= ( lam @ ( X2 @ sh @ one ) ) )
=> ! [X3: subst,X4: term] :
( ( X1 @ X3 @ X4 )
= ( X2 @ X3 @ X4 ) ) ) ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ! [X2: term,X3: term] :
( ( lam @ ( X1 @ sh @ one ) )
!= ( ap @ ( sub @ X2 @ id ) @ X3 ) ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ~ ( var @ ( sub @ ( lam @ ( X1 @ sh @ one ) ) @ id ) ) )
=> ( ! [X1: term,X2: term] :
~ ( var @ ( sub @ ( ap @ ( sub @ X1 @ id ) @ X2 ) @ id ) )
=> ! [X1: subst > term > subst > $o,X2: term > $o] :
( ! [X3: subst,X4: term,X5: subst,X6: subst] :
( ( X1 @ X3 @ X4 @ ( comp @ X6 @ X5 ) )
=> ( X1 @ ( comp @ X3 @ X6 ) @ ( sub @ X4 @ X6 ) @ X5 ) )
=> ( ! [X3: subst,X4: term,X5: subst,X6: subst] :
( ( X1 @ ( comp @ X3 @ X6 ) @ ( sub @ X4 @ X6 ) @ X5 )
=> ( X1 @ X3 @ X4 @ ( comp @ X6 @ X5 ) ) )
=> ( ! [X3: term] :
( ( var @ ( sub @ X3 @ id ) )
=> ( X1 @ id @ X3 @ id ) )
=> ( ! [X3: term] :
( ( X2 @ X3 )
= ( X1 @ id @ X3 @ id ) )
=> ! [X3: term] :
( ( var @ X3 )
=> ( X2 @ X3 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
introduced(assumption,[]) ).
thf(h49,assumption,
! [X1: term > $o] :
( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ! [X3: term] :
( ( X1 @ X3 )
=> ( X1 @ ( sub @ X2 @ ( push @ X3 @ id ) ) ) )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term,X3: subst] :
( ! [X4: term] :
( ( var @ X4 )
=> ( X1 @ ( sub @ X4 @ X3 ) ) )
=> ( X1 @ ( sub @ X2 @ X3 ) ) ) ) ),
introduced(assumption,[]) ).
thf(h50,assumption,
~ ( ! [X1: term > $o] :
( ! [X2: term] :
( ( var @ X2 )
=> ( X1 @ X2 ) )
=> ( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ! [X3: term] :
( ( X1 @ X3 )
=> ( X1 @ ( sub @ X2 @ ( push @ X3 @ id ) ) ) )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term] : ( X1 @ X2 ) ) ) )
=> ( ~ ( ~ ( ! [X1: subst,X2: subst,X3: subst] :
( ( comp @ ( comp @ X1 @ X2 ) @ X3 )
= ( comp @ X1 @ ( comp @ X2 @ X3 ) ) )
=> ~ ! [X1: subst] :
( ( comp @ id @ X1 )
= X1 ) )
=> ~ ! [X1: subst] :
( ( comp @ X1 @ id )
= X1 ) )
=> ( ~ ( ! [X1: term,X2: subst,X3: subst] :
( ( sub @ ( sub @ X1 @ X2 ) @ X3 )
= ( sub @ X1 @ ( comp @ X2 @ X3 ) ) )
=> ~ sP6 )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ ( sub @ X1 @ id ) @ X3 )
= ( ap @ ( sub @ X2 @ id ) @ X4 ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ ( sub @ X1 @ id ) @ X3 )
= ( ap @ ( sub @ X2 @ id ) @ X4 ) )
=> ( X3 = X4 ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ! [X2: subst > term > term] :
( ! [X3: subst,X4: term,X5: subst] :
( ( sub @ ( X2 @ X3 @ X4 ) @ X5 )
= ( X2 @ ( comp @ X3 @ X5 ) @ ( sub @ X4 @ X5 ) ) )
=> ( ( ( lam @ ( X1 @ sh @ one ) )
= ( lam @ ( X2 @ sh @ one ) ) )
=> ! [X3: subst,X4: term] :
( ( X1 @ X3 @ X4 )
= ( X2 @ X3 @ X4 ) ) ) ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ! [X2: term,X3: term] :
( ( lam @ ( X1 @ sh @ one ) )
!= ( ap @ ( sub @ X2 @ id ) @ X3 ) ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ~ ( var @ ( sub @ ( lam @ ( X1 @ sh @ one ) ) @ id ) ) )
=> ( ! [X1: term,X2: term] :
~ ( var @ ( sub @ ( ap @ ( sub @ X1 @ id ) @ X2 ) @ id ) )
=> ! [X1: subst > term > subst > $o,X2: term > $o] :
( ! [X3: subst,X4: term,X5: subst,X6: subst] :
( ( X1 @ X3 @ X4 @ ( comp @ X6 @ X5 ) )
=> ( X1 @ ( comp @ X3 @ X6 ) @ ( sub @ X4 @ X6 ) @ X5 ) )
=> ( ! [X3: subst,X4: term,X5: subst,X6: subst] :
( ( X1 @ ( comp @ X3 @ X6 ) @ ( sub @ X4 @ X6 ) @ X5 )
=> ( X1 @ X3 @ X4 @ ( comp @ X6 @ X5 ) ) )
=> ( ! [X3: term] :
( ( var @ ( sub @ X3 @ id ) )
=> ( X1 @ id @ X3 @ id ) )
=> ( ! [X3: term] :
( ( X2 @ X3 )
= ( X1 @ id @ X3 @ id ) )
=> ! [X3: term] :
( ( var @ X3 )
=> ( X2 @ X3 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
introduced(assumption,[]) ).
thf(h51,assumption,
! [X1: term > $o] :
( ! [X2: term] :
( ( var @ X2 )
=> ( X1 @ X2 ) )
=> ( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ! [X3: term] :
( ( X1 @ X3 )
=> ( X1 @ ( sub @ X2 @ ( push @ X3 @ id ) ) ) )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term] : ( X1 @ X2 ) ) ) ),
introduced(assumption,[]) ).
thf(h52,assumption,
~ ( ~ ( ~ ( ! [X1: subst,X2: subst,X3: subst] :
( ( comp @ ( comp @ X1 @ X2 ) @ X3 )
= ( comp @ X1 @ ( comp @ X2 @ X3 ) ) )
=> ~ ! [X1: subst] :
( ( comp @ id @ X1 )
= X1 ) )
=> ~ ! [X1: subst] :
( ( comp @ X1 @ id )
= X1 ) )
=> ( ~ ( ! [X1: term,X2: subst,X3: subst] :
( ( sub @ ( sub @ X1 @ X2 ) @ X3 )
= ( sub @ X1 @ ( comp @ X2 @ X3 ) ) )
=> ~ sP6 )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ ( sub @ X1 @ id ) @ X3 )
= ( ap @ ( sub @ X2 @ id ) @ X4 ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ ( sub @ X1 @ id ) @ X3 )
= ( ap @ ( sub @ X2 @ id ) @ X4 ) )
=> ( X3 = X4 ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ! [X2: subst > term > term] :
( ! [X3: subst,X4: term,X5: subst] :
( ( sub @ ( X2 @ X3 @ X4 ) @ X5 )
= ( X2 @ ( comp @ X3 @ X5 ) @ ( sub @ X4 @ X5 ) ) )
=> ( ( ( lam @ ( X1 @ sh @ one ) )
= ( lam @ ( X2 @ sh @ one ) ) )
=> ! [X3: subst,X4: term] :
( ( X1 @ X3 @ X4 )
= ( X2 @ X3 @ X4 ) ) ) ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ! [X2: term,X3: term] :
( ( lam @ ( X1 @ sh @ one ) )
!= ( ap @ ( sub @ X2 @ id ) @ X3 ) ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ~ ( var @ ( sub @ ( lam @ ( X1 @ sh @ one ) ) @ id ) ) )
=> ( ! [X1: term,X2: term] :
~ ( var @ ( sub @ ( ap @ ( sub @ X1 @ id ) @ X2 ) @ id ) )
=> ! [X1: subst > term > subst > $o,X2: term > $o] :
( ! [X3: subst,X4: term,X5: subst,X6: subst] :
( ( X1 @ X3 @ X4 @ ( comp @ X6 @ X5 ) )
=> ( X1 @ ( comp @ X3 @ X6 ) @ ( sub @ X4 @ X6 ) @ X5 ) )
=> ( ! [X3: subst,X4: term,X5: subst,X6: subst] :
( ( X1 @ ( comp @ X3 @ X6 ) @ ( sub @ X4 @ X6 ) @ X5 )
=> ( X1 @ X3 @ X4 @ ( comp @ X6 @ X5 ) ) )
=> ( ! [X3: term] :
( ( var @ ( sub @ X3 @ id ) )
=> ( X1 @ id @ X3 @ id ) )
=> ( ! [X3: term] :
( ( X2 @ X3 )
= ( X1 @ id @ X3 @ id ) )
=> ! [X3: term] :
( ( var @ X3 )
=> ( X2 @ X3 ) ) ) ) ) ) ) ) ) ) ) ) ) ),
introduced(assumption,[]) ).
thf(h53,assumption,
~ ( ~ ( ! [X1: subst,X2: subst,X3: subst] :
( ( comp @ ( comp @ X1 @ X2 ) @ X3 )
= ( comp @ X1 @ ( comp @ X2 @ X3 ) ) )
=> ~ ! [X1: subst] :
( ( comp @ id @ X1 )
= X1 ) )
=> ~ ! [X1: subst] :
( ( comp @ X1 @ id )
= X1 ) ),
introduced(assumption,[]) ).
thf(h54,assumption,
~ ( ~ ( ! [X1: term,X2: subst,X3: subst] :
( ( sub @ ( sub @ X1 @ X2 ) @ X3 )
= ( sub @ X1 @ ( comp @ X2 @ X3 ) ) )
=> ~ sP6 )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ ( sub @ X1 @ id ) @ X3 )
= ( ap @ ( sub @ X2 @ id ) @ X4 ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ ( sub @ X1 @ id ) @ X3 )
= ( ap @ ( sub @ X2 @ id ) @ X4 ) )
=> ( X3 = X4 ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ! [X2: subst > term > term] :
( ! [X3: subst,X4: term,X5: subst] :
( ( sub @ ( X2 @ X3 @ X4 ) @ X5 )
= ( X2 @ ( comp @ X3 @ X5 ) @ ( sub @ X4 @ X5 ) ) )
=> ( ( ( lam @ ( X1 @ sh @ one ) )
= ( lam @ ( X2 @ sh @ one ) ) )
=> ! [X3: subst,X4: term] :
( ( X1 @ X3 @ X4 )
= ( X2 @ X3 @ X4 ) ) ) ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ! [X2: term,X3: term] :
( ( lam @ ( X1 @ sh @ one ) )
!= ( ap @ ( sub @ X2 @ id ) @ X3 ) ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ~ ( var @ ( sub @ ( lam @ ( X1 @ sh @ one ) ) @ id ) ) )
=> ( ! [X1: term,X2: term] :
~ ( var @ ( sub @ ( ap @ ( sub @ X1 @ id ) @ X2 ) @ id ) )
=> ! [X1: subst > term > subst > $o,X2: term > $o] :
( ! [X3: subst,X4: term,X5: subst,X6: subst] :
( ( X1 @ X3 @ X4 @ ( comp @ X6 @ X5 ) )
=> ( X1 @ ( comp @ X3 @ X6 ) @ ( sub @ X4 @ X6 ) @ X5 ) )
=> ( ! [X3: subst,X4: term,X5: subst,X6: subst] :
( ( X1 @ ( comp @ X3 @ X6 ) @ ( sub @ X4 @ X6 ) @ X5 )
=> ( X1 @ X3 @ X4 @ ( comp @ X6 @ X5 ) ) )
=> ( ! [X3: term] :
( ( var @ ( sub @ X3 @ id ) )
=> ( X1 @ id @ X3 @ id ) )
=> ( ! [X3: term] :
( ( X2 @ X3 )
= ( X1 @ id @ X3 @ id ) )
=> ! [X3: term] :
( ( var @ X3 )
=> ( X2 @ X3 ) ) ) ) ) ) ) ) ) ) ) ) ),
introduced(assumption,[]) ).
thf(h55,assumption,
~ ( ! [X1: subst,X2: subst,X3: subst] :
( ( comp @ ( comp @ X1 @ X2 ) @ X3 )
= ( comp @ X1 @ ( comp @ X2 @ X3 ) ) )
=> ~ ! [X1: subst] :
( ( comp @ id @ X1 )
= X1 ) ),
introduced(assumption,[]) ).
thf(h56,assumption,
~ ( ! [X1: term,X2: subst,X3: subst] :
( ( sub @ ( sub @ X1 @ X2 ) @ X3 )
= ( sub @ X1 @ ( comp @ X2 @ X3 ) ) )
=> ~ sP6 ),
introduced(assumption,[]) ).
thf(h57,assumption,
~ ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ ( sub @ X1 @ id ) @ X3 )
= ( ap @ ( sub @ X2 @ id ) @ X4 ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ ( sub @ X1 @ id ) @ X3 )
= ( ap @ ( sub @ X2 @ id ) @ X4 ) )
=> ( X3 = X4 ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ! [X2: subst > term > term] :
( ! [X3: subst,X4: term,X5: subst] :
( ( sub @ ( X2 @ X3 @ X4 ) @ X5 )
= ( X2 @ ( comp @ X3 @ X5 ) @ ( sub @ X4 @ X5 ) ) )
=> ( ( ( lam @ ( X1 @ sh @ one ) )
= ( lam @ ( X2 @ sh @ one ) ) )
=> ! [X3: subst,X4: term] :
( ( X1 @ X3 @ X4 )
= ( X2 @ X3 @ X4 ) ) ) ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ! [X2: term,X3: term] :
( ( lam @ ( X1 @ sh @ one ) )
!= ( ap @ ( sub @ X2 @ id ) @ X3 ) ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ~ ( var @ ( sub @ ( lam @ ( X1 @ sh @ one ) ) @ id ) ) )
=> ( ! [X1: term,X2: term] :
~ ( var @ ( sub @ ( ap @ ( sub @ X1 @ id ) @ X2 ) @ id ) )
=> ! [X1: subst > term > subst > $o,X2: term > $o] :
( ! [X3: subst,X4: term,X5: subst,X6: subst] :
( ( X1 @ X3 @ X4 @ ( comp @ X6 @ X5 ) )
=> ( X1 @ ( comp @ X3 @ X6 ) @ ( sub @ X4 @ X6 ) @ X5 ) )
=> ( ! [X3: subst,X4: term,X5: subst,X6: subst] :
( ( X1 @ ( comp @ X3 @ X6 ) @ ( sub @ X4 @ X6 ) @ X5 )
=> ( X1 @ X3 @ X4 @ ( comp @ X6 @ X5 ) ) )
=> ( ! [X3: term] :
( ( var @ ( sub @ X3 @ id ) )
=> ( X1 @ id @ X3 @ id ) )
=> ( ! [X3: term] :
( ( X2 @ X3 )
= ( X1 @ id @ X3 @ id ) )
=> ! [X3: term] :
( ( var @ X3 )
=> ( X2 @ X3 ) ) ) ) ) ) ) ) ) ) ) ),
introduced(assumption,[]) ).
thf(h58,assumption,
! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ ( sub @ X1 @ id ) @ X3 )
= ( ap @ ( sub @ X2 @ id ) @ X4 ) )
=> ( X1 = X2 ) ),
introduced(assumption,[]) ).
thf(h59,assumption,
~ ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ ( sub @ X1 @ id ) @ X3 )
= ( ap @ ( sub @ X2 @ id ) @ X4 ) )
=> ( X3 = X4 ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ! [X2: subst > term > term] :
( ! [X3: subst,X4: term,X5: subst] :
( ( sub @ ( X2 @ X3 @ X4 ) @ X5 )
= ( X2 @ ( comp @ X3 @ X5 ) @ ( sub @ X4 @ X5 ) ) )
=> ( ( ( lam @ ( X1 @ sh @ one ) )
= ( lam @ ( X2 @ sh @ one ) ) )
=> ! [X3: subst,X4: term] :
( ( X1 @ X3 @ X4 )
= ( X2 @ X3 @ X4 ) ) ) ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ! [X2: term,X3: term] :
( ( lam @ ( X1 @ sh @ one ) )
!= ( ap @ ( sub @ X2 @ id ) @ X3 ) ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ~ ( var @ ( sub @ ( lam @ ( X1 @ sh @ one ) ) @ id ) ) )
=> ( ! [X1: term,X2: term] :
~ ( var @ ( sub @ ( ap @ ( sub @ X1 @ id ) @ X2 ) @ id ) )
=> ! [X1: subst > term > subst > $o,X2: term > $o] :
( ! [X3: subst,X4: term,X5: subst,X6: subst] :
( ( X1 @ X3 @ X4 @ ( comp @ X6 @ X5 ) )
=> ( X1 @ ( comp @ X3 @ X6 ) @ ( sub @ X4 @ X6 ) @ X5 ) )
=> ( ! [X3: subst,X4: term,X5: subst,X6: subst] :
( ( X1 @ ( comp @ X3 @ X6 ) @ ( sub @ X4 @ X6 ) @ X5 )
=> ( X1 @ X3 @ X4 @ ( comp @ X6 @ X5 ) ) )
=> ( ! [X3: term] :
( ( var @ ( sub @ X3 @ id ) )
=> ( X1 @ id @ X3 @ id ) )
=> ( ! [X3: term] :
( ( X2 @ X3 )
= ( X1 @ id @ X3 @ id ) )
=> ! [X3: term] :
( ( var @ X3 )
=> ( X2 @ X3 ) ) ) ) ) ) ) ) ) ) ),
introduced(assumption,[]) ).
thf(h60,assumption,
! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ ( sub @ X1 @ id ) @ X3 )
= ( ap @ ( sub @ X2 @ id ) @ X4 ) )
=> ( X3 = X4 ) ),
introduced(assumption,[]) ).
thf(h61,assumption,
~ ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ! [X2: subst > term > term] :
( ! [X3: subst,X4: term,X5: subst] :
( ( sub @ ( X2 @ X3 @ X4 ) @ X5 )
= ( X2 @ ( comp @ X3 @ X5 ) @ ( sub @ X4 @ X5 ) ) )
=> ( ( ( lam @ ( X1 @ sh @ one ) )
= ( lam @ ( X2 @ sh @ one ) ) )
=> ! [X3: subst,X4: term] :
( ( X1 @ X3 @ X4 )
= ( X2 @ X3 @ X4 ) ) ) ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ! [X2: term,X3: term] :
( ( lam @ ( X1 @ sh @ one ) )
!= ( ap @ ( sub @ X2 @ id ) @ X3 ) ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ~ ( var @ ( sub @ ( lam @ ( X1 @ sh @ one ) ) @ id ) ) )
=> ( ! [X1: term,X2: term] :
~ ( var @ ( sub @ ( ap @ ( sub @ X1 @ id ) @ X2 ) @ id ) )
=> ! [X1: subst > term > subst > $o,X2: term > $o] :
( ! [X3: subst,X4: term,X5: subst,X6: subst] :
( ( X1 @ X3 @ X4 @ ( comp @ X6 @ X5 ) )
=> ( X1 @ ( comp @ X3 @ X6 ) @ ( sub @ X4 @ X6 ) @ X5 ) )
=> ( ! [X3: subst,X4: term,X5: subst,X6: subst] :
( ( X1 @ ( comp @ X3 @ X6 ) @ ( sub @ X4 @ X6 ) @ X5 )
=> ( X1 @ X3 @ X4 @ ( comp @ X6 @ X5 ) ) )
=> ( ! [X3: term] :
( ( var @ ( sub @ X3 @ id ) )
=> ( X1 @ id @ X3 @ id ) )
=> ( ! [X3: term] :
( ( X2 @ X3 )
= ( X1 @ id @ X3 @ id ) )
=> ! [X3: term] :
( ( var @ X3 )
=> ( X2 @ X3 ) ) ) ) ) ) ) ) ) ),
introduced(assumption,[]) ).
thf(h62,assumption,
! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ! [X2: subst > term > term] :
( ! [X3: subst,X4: term,X5: subst] :
( ( sub @ ( X2 @ X3 @ X4 ) @ X5 )
= ( X2 @ ( comp @ X3 @ X5 ) @ ( sub @ X4 @ X5 ) ) )
=> ( ( ( lam @ ( X1 @ sh @ one ) )
= ( lam @ ( X2 @ sh @ one ) ) )
=> ! [X3: subst,X4: term] :
( ( X1 @ X3 @ X4 )
= ( X2 @ X3 @ X4 ) ) ) ) ),
introduced(assumption,[]) ).
thf(h63,assumption,
~ ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ! [X2: term,X3: term] :
( ( lam @ ( X1 @ sh @ one ) )
!= ( ap @ ( sub @ X2 @ id ) @ X3 ) ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ~ ( var @ ( sub @ ( lam @ ( X1 @ sh @ one ) ) @ id ) ) )
=> ( ! [X1: term,X2: term] :
~ ( var @ ( sub @ ( ap @ ( sub @ X1 @ id ) @ X2 ) @ id ) )
=> ! [X1: subst > term > subst > $o,X2: term > $o] :
( ! [X3: subst,X4: term,X5: subst,X6: subst] :
( ( X1 @ X3 @ X4 @ ( comp @ X6 @ X5 ) )
=> ( X1 @ ( comp @ X3 @ X6 ) @ ( sub @ X4 @ X6 ) @ X5 ) )
=> ( ! [X3: subst,X4: term,X5: subst,X6: subst] :
( ( X1 @ ( comp @ X3 @ X6 ) @ ( sub @ X4 @ X6 ) @ X5 )
=> ( X1 @ X3 @ X4 @ ( comp @ X6 @ X5 ) ) )
=> ( ! [X3: term] :
( ( var @ ( sub @ X3 @ id ) )
=> ( X1 @ id @ X3 @ id ) )
=> ( ! [X3: term] :
( ( X2 @ X3 )
= ( X1 @ id @ X3 @ id ) )
=> ! [X3: term] :
( ( var @ X3 )
=> ( X2 @ X3 ) ) ) ) ) ) ) ) ),
introduced(assumption,[]) ).
thf(h64,assumption,
! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ! [X2: term,X3: term] :
( ( lam @ ( X1 @ sh @ one ) )
!= ( ap @ ( sub @ X2 @ id ) @ X3 ) ) ),
introduced(assumption,[]) ).
thf(h65,assumption,
~ ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ~ ( var @ ( sub @ ( lam @ ( X1 @ sh @ one ) ) @ id ) ) )
=> ( ! [X1: term,X2: term] :
~ ( var @ ( sub @ ( ap @ ( sub @ X1 @ id ) @ X2 ) @ id ) )
=> ! [X1: subst > term > subst > $o,X2: term > $o] :
( ! [X3: subst,X4: term,X5: subst,X6: subst] :
( ( X1 @ X3 @ X4 @ ( comp @ X6 @ X5 ) )
=> ( X1 @ ( comp @ X3 @ X6 ) @ ( sub @ X4 @ X6 ) @ X5 ) )
=> ( ! [X3: subst,X4: term,X5: subst,X6: subst] :
( ( X1 @ ( comp @ X3 @ X6 ) @ ( sub @ X4 @ X6 ) @ X5 )
=> ( X1 @ X3 @ X4 @ ( comp @ X6 @ X5 ) ) )
=> ( ! [X3: term] :
( ( var @ ( sub @ X3 @ id ) )
=> ( X1 @ id @ X3 @ id ) )
=> ( ! [X3: term] :
( ( X2 @ X3 )
= ( X1 @ id @ X3 @ id ) )
=> ! [X3: term] :
( ( var @ X3 )
=> ( X2 @ X3 ) ) ) ) ) ) ) ),
introduced(assumption,[]) ).
thf(h66,assumption,
! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ~ ( var @ ( sub @ ( lam @ ( X1 @ sh @ one ) ) @ id ) ) ),
introduced(assumption,[]) ).
thf(h67,assumption,
~ ( ! [X1: term,X2: term] :
~ ( var @ ( sub @ ( ap @ ( sub @ X1 @ id ) @ X2 ) @ id ) )
=> ! [X1: subst > term > subst > $o,X2: term > $o] :
( ! [X3: subst,X4: term,X5: subst,X6: subst] :
( ( X1 @ X3 @ X4 @ ( comp @ X6 @ X5 ) )
=> ( X1 @ ( comp @ X3 @ X6 ) @ ( sub @ X4 @ X6 ) @ X5 ) )
=> ( ! [X3: subst,X4: term,X5: subst,X6: subst] :
( ( X1 @ ( comp @ X3 @ X6 ) @ ( sub @ X4 @ X6 ) @ X5 )
=> ( X1 @ X3 @ X4 @ ( comp @ X6 @ X5 ) ) )
=> ( ! [X3: term] :
( ( var @ ( sub @ X3 @ id ) )
=> ( X1 @ id @ X3 @ id ) )
=> ( ! [X3: term] :
( ( X2 @ X3 )
= ( X1 @ id @ X3 @ id ) )
=> ! [X3: term] :
( ( var @ X3 )
=> ( X2 @ X3 ) ) ) ) ) ) ),
introduced(assumption,[]) ).
thf(h68,assumption,
! [X1: term,X2: term] :
~ ( var @ ( sub @ ( ap @ ( sub @ X1 @ id ) @ X2 ) @ id ) ),
introduced(assumption,[]) ).
thf(h69,assumption,
~ ! [X1: subst > term > subst > $o,X2: term > $o] :
( ! [X3: subst,X4: term,X5: subst,X6: subst] :
( ( X1 @ X3 @ X4 @ ( comp @ X6 @ X5 ) )
=> ( X1 @ ( comp @ X3 @ X6 ) @ ( sub @ X4 @ X6 ) @ X5 ) )
=> ( ! [X3: subst,X4: term,X5: subst,X6: subst] :
( ( X1 @ ( comp @ X3 @ X6 ) @ ( sub @ X4 @ X6 ) @ X5 )
=> ( X1 @ X3 @ X4 @ ( comp @ X6 @ X5 ) ) )
=> ( ! [X3: term] :
( ( var @ ( sub @ X3 @ id ) )
=> ( X1 @ id @ X3 @ id ) )
=> ( ! [X3: term] :
( ( X2 @ X3 )
= ( X1 @ id @ X3 @ id ) )
=> ! [X3: term] :
( ( var @ X3 )
=> ( X2 @ X3 ) ) ) ) ) ),
introduced(assumption,[]) ).
thf(h70,assumption,
~ ! [X1: term > $o] :
( ! [X2: subst,X3: term,X4: subst,X5: subst] :
( ( eigen__0 @ X2 @ X3 @ ( comp @ X5 @ X4 ) )
=> ( eigen__0 @ ( comp @ X2 @ X5 ) @ ( sub @ X3 @ X5 ) @ X4 ) )
=> ( ! [X2: subst,X3: term,X4: subst,X5: subst] :
( ( eigen__0 @ ( comp @ X2 @ X5 ) @ ( sub @ X3 @ X5 ) @ X4 )
=> ( eigen__0 @ X2 @ X3 @ ( comp @ X5 @ X4 ) ) )
=> ( sP11
=> ( ! [X2: term] :
( ( X1 @ X2 )
= ( eigen__0 @ id @ X2 @ id ) )
=> ! [X2: term] :
( ( var @ X2 )
=> ( X1 @ X2 ) ) ) ) ) ),
introduced(assumption,[]) ).
thf(h71,assumption,
~ ( ! [X1: subst,X2: term,X3: subst,X4: subst] :
( ( eigen__0 @ X1 @ X2 @ ( comp @ X4 @ X3 ) )
=> ( eigen__0 @ ( comp @ X1 @ X4 ) @ ( sub @ X2 @ X4 ) @ X3 ) )
=> ( ! [X1: subst,X2: term,X3: subst,X4: subst] :
( ( eigen__0 @ ( comp @ X1 @ X4 ) @ ( sub @ X2 @ X4 ) @ X3 )
=> ( eigen__0 @ X1 @ X2 @ ( comp @ X4 @ X3 ) ) )
=> ( sP11
=> ( sP8
=> ! [X1: term] :
( ( var @ X1 )
=> ( eigen__1 @ X1 ) ) ) ) ) ),
introduced(assumption,[]) ).
thf(h72,assumption,
! [X1: subst,X2: term,X3: subst,X4: subst] :
( ( eigen__0 @ X1 @ X2 @ ( comp @ X4 @ X3 ) )
=> ( eigen__0 @ ( comp @ X1 @ X4 ) @ ( sub @ X2 @ X4 ) @ X3 ) ),
introduced(assumption,[]) ).
thf(h73,assumption,
~ ( ! [X1: subst,X2: term,X3: subst,X4: subst] :
( ( eigen__0 @ ( comp @ X1 @ X4 ) @ ( sub @ X2 @ X4 ) @ X3 )
=> ( eigen__0 @ X1 @ X2 @ ( comp @ X4 @ X3 ) ) )
=> ( sP11
=> ( sP8
=> ! [X1: term] :
( ( var @ X1 )
=> ( eigen__1 @ X1 ) ) ) ) ),
introduced(assumption,[]) ).
thf(h74,assumption,
! [X1: subst,X2: term,X3: subst,X4: subst] :
( ( eigen__0 @ ( comp @ X1 @ X4 ) @ ( sub @ X2 @ X4 ) @ X3 )
=> ( eigen__0 @ X1 @ X2 @ ( comp @ X4 @ X3 ) ) ),
introduced(assumption,[]) ).
thf(h75,assumption,
~ ( sP11
=> ( sP8
=> ! [X1: term] :
( ( var @ X1 )
=> ( eigen__1 @ X1 ) ) ) ),
introduced(assumption,[]) ).
thf(h76,assumption,
sP11,
introduced(assumption,[]) ).
thf(h77,assumption,
~ ( sP8
=> ! [X1: term] :
( ( var @ X1 )
=> ( eigen__1 @ X1 ) ) ),
introduced(assumption,[]) ).
thf(h78,assumption,
sP8,
introduced(assumption,[]) ).
thf(h79,assumption,
~ ! [X1: term] :
( ( var @ X1 )
=> ( eigen__1 @ X1 ) ),
introduced(assumption,[]) ).
thf(h80,assumption,
~ ( sP1
=> sP9 ),
introduced(assumption,[]) ).
thf(h81,assumption,
sP1,
introduced(assumption,[]) ).
thf(h82,assumption,
~ sP9,
introduced(assumption,[]) ).
thf(1,plain,
( ~ sP1
| sP5
| ~ sP2 ),
inference(mating_rule,[status(thm)],]) ).
thf(2,plain,
( ~ sP4
| sP9
| ~ sP7 ),
inference(prop_rule,[status(thm)],]) ).
thf(3,plain,
( ~ sP3
| ~ sP5
| sP7 ),
inference(prop_rule,[status(thm)],]) ).
thf(4,plain,
( ~ sP10
| sP2 ),
inference(symeq,[status(thm)],]) ).
thf(5,plain,
( ~ sP8
| sP4 ),
inference(all_rule,[status(thm)],]) ).
thf(6,plain,
( ~ sP11
| sP3 ),
inference(all_rule,[status(thm)],]) ).
thf(7,plain,
( ~ sP6
| sP10 ),
inference(all_rule,[status(thm)],]) ).
thf(8,plain,
$false,
inference(prop_unsat,[status(thm),assumptions([h81,h82,h80,h78,h79,h76,h77,h74,h75,h72,h73,h71,h70,h68,h69,h66,h67,h64,h65,h62,h63,h60,h61,h58,h59,h9,h5,h56,h57,h15,h11,h55,h19,h53,h54,h51,h52,h49,h50,h47,h48,h45,h46,h43,h44,h41,h42,h39,h40,h37,h38,h35,h36,h33,h34,h31,h32,h29,h30,h27,h28,h25,h26,h23,h24,h21,h22,h19,h20,h17,h18,h15,h16,h13,h14,h11,h12,h9,h10,h7,h8,h5,h6,h3,h4,h1,h2,h0])],[1,2,3,4,5,6,7,h5,h76,h78,h81,h82]) ).
thf(9,plain,
$false,
inference(tab_negimp,[status(thm),assumptions([h80,h78,h79,h76,h77,h74,h75,h72,h73,h71,h70,h68,h69,h66,h67,h64,h65,h62,h63,h60,h61,h58,h59,h9,h5,h56,h57,h15,h11,h55,h19,h53,h54,h51,h52,h49,h50,h47,h48,h45,h46,h43,h44,h41,h42,h39,h40,h37,h38,h35,h36,h33,h34,h31,h32,h29,h30,h27,h28,h25,h26,h23,h24,h21,h22,h19,h20,h17,h18,h15,h16,h13,h14,h11,h12,h9,h10,h7,h8,h5,h6,h3,h4,h1,h2,h0]),tab_negimp(discharge,[h81,h82])],[h80,8,h81,h82]) ).
thf(10,plain,
$false,
inference(tab_negall,[status(thm),assumptions([h78,h79,h76,h77,h74,h75,h72,h73,h71,h70,h68,h69,h66,h67,h64,h65,h62,h63,h60,h61,h58,h59,h9,h5,h56,h57,h15,h11,h55,h19,h53,h54,h51,h52,h49,h50,h47,h48,h45,h46,h43,h44,h41,h42,h39,h40,h37,h38,h35,h36,h33,h34,h31,h32,h29,h30,h27,h28,h25,h26,h23,h24,h21,h22,h19,h20,h17,h18,h15,h16,h13,h14,h11,h12,h9,h10,h7,h8,h5,h6,h3,h4,h1,h2,h0]),tab_negall(discharge,[h80]),tab_negall(eigenvar,eigen__2)],[h79,9,h80]) ).
thf(11,plain,
$false,
inference(tab_negimp,[status(thm),assumptions([h76,h77,h74,h75,h72,h73,h71,h70,h68,h69,h66,h67,h64,h65,h62,h63,h60,h61,h58,h59,h9,h5,h56,h57,h15,h11,h55,h19,h53,h54,h51,h52,h49,h50,h47,h48,h45,h46,h43,h44,h41,h42,h39,h40,h37,h38,h35,h36,h33,h34,h31,h32,h29,h30,h27,h28,h25,h26,h23,h24,h21,h22,h19,h20,h17,h18,h15,h16,h13,h14,h11,h12,h9,h10,h7,h8,h5,h6,h3,h4,h1,h2,h0]),tab_negimp(discharge,[h78,h79])],[h77,10,h78,h79]) ).
thf(12,plain,
$false,
inference(tab_negimp,[status(thm),assumptions([h74,h75,h72,h73,h71,h70,h68,h69,h66,h67,h64,h65,h62,h63,h60,h61,h58,h59,h9,h5,h56,h57,h15,h11,h55,h19,h53,h54,h51,h52,h49,h50,h47,h48,h45,h46,h43,h44,h41,h42,h39,h40,h37,h38,h35,h36,h33,h34,h31,h32,h29,h30,h27,h28,h25,h26,h23,h24,h21,h22,h19,h20,h17,h18,h15,h16,h13,h14,h11,h12,h9,h10,h7,h8,h5,h6,h3,h4,h1,h2,h0]),tab_negimp(discharge,[h76,h77])],[h75,11,h76,h77]) ).
thf(13,plain,
$false,
inference(tab_negimp,[status(thm),assumptions([h72,h73,h71,h70,h68,h69,h66,h67,h64,h65,h62,h63,h60,h61,h58,h59,h9,h5,h56,h57,h15,h11,h55,h19,h53,h54,h51,h52,h49,h50,h47,h48,h45,h46,h43,h44,h41,h42,h39,h40,h37,h38,h35,h36,h33,h34,h31,h32,h29,h30,h27,h28,h25,h26,h23,h24,h21,h22,h19,h20,h17,h18,h15,h16,h13,h14,h11,h12,h9,h10,h7,h8,h5,h6,h3,h4,h1,h2,h0]),tab_negimp(discharge,[h74,h75])],[h73,12,h74,h75]) ).
thf(14,plain,
$false,
inference(tab_negimp,[status(thm),assumptions([h71,h70,h68,h69,h66,h67,h64,h65,h62,h63,h60,h61,h58,h59,h9,h5,h56,h57,h15,h11,h55,h19,h53,h54,h51,h52,h49,h50,h47,h48,h45,h46,h43,h44,h41,h42,h39,h40,h37,h38,h35,h36,h33,h34,h31,h32,h29,h30,h27,h28,h25,h26,h23,h24,h21,h22,h19,h20,h17,h18,h15,h16,h13,h14,h11,h12,h9,h10,h7,h8,h5,h6,h3,h4,h1,h2,h0]),tab_negimp(discharge,[h72,h73])],[h71,13,h72,h73]) ).
thf(15,plain,
$false,
inference(tab_negall,[status(thm),assumptions([h70,h68,h69,h66,h67,h64,h65,h62,h63,h60,h61,h58,h59,h9,h5,h56,h57,h15,h11,h55,h19,h53,h54,h51,h52,h49,h50,h47,h48,h45,h46,h43,h44,h41,h42,h39,h40,h37,h38,h35,h36,h33,h34,h31,h32,h29,h30,h27,h28,h25,h26,h23,h24,h21,h22,h19,h20,h17,h18,h15,h16,h13,h14,h11,h12,h9,h10,h7,h8,h5,h6,h3,h4,h1,h2,h0]),tab_negall(discharge,[h71]),tab_negall(eigenvar,eigen__1)],[h70,14,h71]) ).
thf(16,plain,
$false,
inference(tab_negall,[status(thm),assumptions([h68,h69,h66,h67,h64,h65,h62,h63,h60,h61,h58,h59,h9,h5,h56,h57,h15,h11,h55,h19,h53,h54,h51,h52,h49,h50,h47,h48,h45,h46,h43,h44,h41,h42,h39,h40,h37,h38,h35,h36,h33,h34,h31,h32,h29,h30,h27,h28,h25,h26,h23,h24,h21,h22,h19,h20,h17,h18,h15,h16,h13,h14,h11,h12,h9,h10,h7,h8,h5,h6,h3,h4,h1,h2,h0]),tab_negall(discharge,[h70]),tab_negall(eigenvar,eigen__0)],[h69,15,h70]) ).
thf(17,plain,
$false,
inference(tab_negimp,[status(thm),assumptions([h66,h67,h64,h65,h62,h63,h60,h61,h58,h59,h9,h5,h56,h57,h15,h11,h55,h19,h53,h54,h51,h52,h49,h50,h47,h48,h45,h46,h43,h44,h41,h42,h39,h40,h37,h38,h35,h36,h33,h34,h31,h32,h29,h30,h27,h28,h25,h26,h23,h24,h21,h22,h19,h20,h17,h18,h15,h16,h13,h14,h11,h12,h9,h10,h7,h8,h5,h6,h3,h4,h1,h2,h0]),tab_negimp(discharge,[h68,h69])],[h67,16,h68,h69]) ).
thf(18,plain,
$false,
inference(tab_negimp,[status(thm),assumptions([h64,h65,h62,h63,h60,h61,h58,h59,h9,h5,h56,h57,h15,h11,h55,h19,h53,h54,h51,h52,h49,h50,h47,h48,h45,h46,h43,h44,h41,h42,h39,h40,h37,h38,h35,h36,h33,h34,h31,h32,h29,h30,h27,h28,h25,h26,h23,h24,h21,h22,h19,h20,h17,h18,h15,h16,h13,h14,h11,h12,h9,h10,h7,h8,h5,h6,h3,h4,h1,h2,h0]),tab_negimp(discharge,[h66,h67])],[h65,17,h66,h67]) ).
thf(19,plain,
$false,
inference(tab_negimp,[status(thm),assumptions([h62,h63,h60,h61,h58,h59,h9,h5,h56,h57,h15,h11,h55,h19,h53,h54,h51,h52,h49,h50,h47,h48,h45,h46,h43,h44,h41,h42,h39,h40,h37,h38,h35,h36,h33,h34,h31,h32,h29,h30,h27,h28,h25,h26,h23,h24,h21,h22,h19,h20,h17,h18,h15,h16,h13,h14,h11,h12,h9,h10,h7,h8,h5,h6,h3,h4,h1,h2,h0]),tab_negimp(discharge,[h64,h65])],[h63,18,h64,h65]) ).
thf(20,plain,
$false,
inference(tab_negimp,[status(thm),assumptions([h60,h61,h58,h59,h9,h5,h56,h57,h15,h11,h55,h19,h53,h54,h51,h52,h49,h50,h47,h48,h45,h46,h43,h44,h41,h42,h39,h40,h37,h38,h35,h36,h33,h34,h31,h32,h29,h30,h27,h28,h25,h26,h23,h24,h21,h22,h19,h20,h17,h18,h15,h16,h13,h14,h11,h12,h9,h10,h7,h8,h5,h6,h3,h4,h1,h2,h0]),tab_negimp(discharge,[h62,h63])],[h61,19,h62,h63]) ).
thf(21,plain,
$false,
inference(tab_negimp,[status(thm),assumptions([h58,h59,h9,h5,h56,h57,h15,h11,h55,h19,h53,h54,h51,h52,h49,h50,h47,h48,h45,h46,h43,h44,h41,h42,h39,h40,h37,h38,h35,h36,h33,h34,h31,h32,h29,h30,h27,h28,h25,h26,h23,h24,h21,h22,h19,h20,h17,h18,h15,h16,h13,h14,h11,h12,h9,h10,h7,h8,h5,h6,h3,h4,h1,h2,h0]),tab_negimp(discharge,[h60,h61])],[h59,20,h60,h61]) ).
thf(22,plain,
$false,
inference(tab_negimp,[status(thm),assumptions([h9,h5,h56,h57,h15,h11,h55,h19,h53,h54,h51,h52,h49,h50,h47,h48,h45,h46,h43,h44,h41,h42,h39,h40,h37,h38,h35,h36,h33,h34,h31,h32,h29,h30,h27,h28,h25,h26,h23,h24,h21,h22,h19,h20,h17,h18,h15,h16,h13,h14,h11,h12,h9,h10,h7,h8,h5,h6,h3,h4,h1,h2,h0]),tab_negimp(discharge,[h58,h59])],[h57,21,h58,h59]) ).
thf(23,plain,
$false,
inference(tab_negimp,[status(thm),assumptions([h56,h57,h15,h11,h55,h19,h53,h54,h51,h52,h49,h50,h47,h48,h45,h46,h43,h44,h41,h42,h39,h40,h37,h38,h35,h36,h33,h34,h31,h32,h29,h30,h27,h28,h25,h26,h23,h24,h21,h22,h19,h20,h17,h18,h15,h16,h13,h14,h11,h12,h9,h10,h7,h8,h5,h6,h3,h4,h1,h2,h0]),tab_negimp(discharge,[h9,h5])],[h56,22,h9,h5]) ).
thf(24,plain,
$false,
inference(tab_negimp,[status(thm),assumptions([h15,h11,h55,h19,h53,h54,h51,h52,h49,h50,h47,h48,h45,h46,h43,h44,h41,h42,h39,h40,h37,h38,h35,h36,h33,h34,h31,h32,h29,h30,h27,h28,h25,h26,h23,h24,h21,h22,h19,h20,h17,h18,h15,h16,h13,h14,h11,h12,h9,h10,h7,h8,h5,h6,h3,h4,h1,h2,h0]),tab_negimp(discharge,[h56,h57])],[h54,23,h56,h57]) ).
thf(25,plain,
$false,
inference(tab_negimp,[status(thm),assumptions([h55,h19,h53,h54,h51,h52,h49,h50,h47,h48,h45,h46,h43,h44,h41,h42,h39,h40,h37,h38,h35,h36,h33,h34,h31,h32,h29,h30,h27,h28,h25,h26,h23,h24,h21,h22,h19,h20,h17,h18,h15,h16,h13,h14,h11,h12,h9,h10,h7,h8,h5,h6,h3,h4,h1,h2,h0]),tab_negimp(discharge,[h15,h11])],[h55,24,h15,h11]) ).
thf(26,plain,
$false,
inference(tab_negimp,[status(thm),assumptions([h53,h54,h51,h52,h49,h50,h47,h48,h45,h46,h43,h44,h41,h42,h39,h40,h37,h38,h35,h36,h33,h34,h31,h32,h29,h30,h27,h28,h25,h26,h23,h24,h21,h22,h19,h20,h17,h18,h15,h16,h13,h14,h11,h12,h9,h10,h7,h8,h5,h6,h3,h4,h1,h2,h0]),tab_negimp(discharge,[h55,h19])],[h53,25,h55,h19]) ).
thf(27,plain,
$false,
inference(tab_negimp,[status(thm),assumptions([h51,h52,h49,h50,h47,h48,h45,h46,h43,h44,h41,h42,h39,h40,h37,h38,h35,h36,h33,h34,h31,h32,h29,h30,h27,h28,h25,h26,h23,h24,h21,h22,h19,h20,h17,h18,h15,h16,h13,h14,h11,h12,h9,h10,h7,h8,h5,h6,h3,h4,h1,h2,h0]),tab_negimp(discharge,[h53,h54])],[h52,26,h53,h54]) ).
thf(28,plain,
$false,
inference(tab_negimp,[status(thm),assumptions([h49,h50,h47,h48,h45,h46,h43,h44,h41,h42,h39,h40,h37,h38,h35,h36,h33,h34,h31,h32,h29,h30,h27,h28,h25,h26,h23,h24,h21,h22,h19,h20,h17,h18,h15,h16,h13,h14,h11,h12,h9,h10,h7,h8,h5,h6,h3,h4,h1,h2,h0]),tab_negimp(discharge,[h51,h52])],[h50,27,h51,h52]) ).
thf(29,plain,
$false,
inference(tab_negimp,[status(thm),assumptions([h47,h48,h45,h46,h43,h44,h41,h42,h39,h40,h37,h38,h35,h36,h33,h34,h31,h32,h29,h30,h27,h28,h25,h26,h23,h24,h21,h22,h19,h20,h17,h18,h15,h16,h13,h14,h11,h12,h9,h10,h7,h8,h5,h6,h3,h4,h1,h2,h0]),tab_negimp(discharge,[h49,h50])],[h48,28,h49,h50]) ).
thf(30,plain,
$false,
inference(tab_negimp,[status(thm),assumptions([h45,h46,h43,h44,h41,h42,h39,h40,h37,h38,h35,h36,h33,h34,h31,h32,h29,h30,h27,h28,h25,h26,h23,h24,h21,h22,h19,h20,h17,h18,h15,h16,h13,h14,h11,h12,h9,h10,h7,h8,h5,h6,h3,h4,h1,h2,h0]),tab_negimp(discharge,[h47,h48])],[h46,29,h47,h48]) ).
thf(31,plain,
$false,
inference(tab_negimp,[status(thm),assumptions([h43,h44,h41,h42,h39,h40,h37,h38,h35,h36,h33,h34,h31,h32,h29,h30,h27,h28,h25,h26,h23,h24,h21,h22,h19,h20,h17,h18,h15,h16,h13,h14,h11,h12,h9,h10,h7,h8,h5,h6,h3,h4,h1,h2,h0]),tab_negimp(discharge,[h45,h46])],[h44,30,h45,h46]) ).
thf(32,plain,
$false,
inference(tab_negimp,[status(thm),assumptions([h41,h42,h39,h40,h37,h38,h35,h36,h33,h34,h31,h32,h29,h30,h27,h28,h25,h26,h23,h24,h21,h22,h19,h20,h17,h18,h15,h16,h13,h14,h11,h12,h9,h10,h7,h8,h5,h6,h3,h4,h1,h2,h0]),tab_negimp(discharge,[h43,h44])],[h42,31,h43,h44]) ).
thf(33,plain,
$false,
inference(tab_negimp,[status(thm),assumptions([h39,h40,h37,h38,h35,h36,h33,h34,h31,h32,h29,h30,h27,h28,h25,h26,h23,h24,h21,h22,h19,h20,h17,h18,h15,h16,h13,h14,h11,h12,h9,h10,h7,h8,h5,h6,h3,h4,h1,h2,h0]),tab_negimp(discharge,[h41,h42])],[h40,32,h41,h42]) ).
thf(34,plain,
$false,
inference(tab_negimp,[status(thm),assumptions([h37,h38,h35,h36,h33,h34,h31,h32,h29,h30,h27,h28,h25,h26,h23,h24,h21,h22,h19,h20,h17,h18,h15,h16,h13,h14,h11,h12,h9,h10,h7,h8,h5,h6,h3,h4,h1,h2,h0]),tab_negimp(discharge,[h39,h40])],[h38,33,h39,h40]) ).
thf(35,plain,
$false,
inference(tab_negimp,[status(thm),assumptions([h35,h36,h33,h34,h31,h32,h29,h30,h27,h28,h25,h26,h23,h24,h21,h22,h19,h20,h17,h18,h15,h16,h13,h14,h11,h12,h9,h10,h7,h8,h5,h6,h3,h4,h1,h2,h0]),tab_negimp(discharge,[h37,h38])],[h36,34,h37,h38]) ).
thf(36,plain,
$false,
inference(tab_negimp,[status(thm),assumptions([h33,h34,h31,h32,h29,h30,h27,h28,h25,h26,h23,h24,h21,h22,h19,h20,h17,h18,h15,h16,h13,h14,h11,h12,h9,h10,h7,h8,h5,h6,h3,h4,h1,h2,h0]),tab_negimp(discharge,[h35,h36])],[h34,35,h35,h36]) ).
thf(37,plain,
$false,
inference(tab_negimp,[status(thm),assumptions([h31,h32,h29,h30,h27,h28,h25,h26,h23,h24,h21,h22,h19,h20,h17,h18,h15,h16,h13,h14,h11,h12,h9,h10,h7,h8,h5,h6,h3,h4,h1,h2,h0]),tab_negimp(discharge,[h33,h34])],[h32,36,h33,h34]) ).
thf(38,plain,
$false,
inference(tab_negimp,[status(thm),assumptions([h29,h30,h27,h28,h25,h26,h23,h24,h21,h22,h19,h20,h17,h18,h15,h16,h13,h14,h11,h12,h9,h10,h7,h8,h5,h6,h3,h4,h1,h2,h0]),tab_negimp(discharge,[h31,h32])],[h30,37,h31,h32]) ).
thf(39,plain,
$false,
inference(tab_negimp,[status(thm),assumptions([h27,h28,h25,h26,h23,h24,h21,h22,h19,h20,h17,h18,h15,h16,h13,h14,h11,h12,h9,h10,h7,h8,h5,h6,h3,h4,h1,h2,h0]),tab_negimp(discharge,[h29,h30])],[h28,38,h29,h30]) ).
thf(40,plain,
$false,
inference(tab_negimp,[status(thm),assumptions([h25,h26,h23,h24,h21,h22,h19,h20,h17,h18,h15,h16,h13,h14,h11,h12,h9,h10,h7,h8,h5,h6,h3,h4,h1,h2,h0]),tab_negimp(discharge,[h27,h28])],[h26,39,h27,h28]) ).
thf(41,plain,
$false,
inference(tab_negimp,[status(thm),assumptions([h23,h24,h21,h22,h19,h20,h17,h18,h15,h16,h13,h14,h11,h12,h9,h10,h7,h8,h5,h6,h3,h4,h1,h2,h0]),tab_negimp(discharge,[h25,h26])],[h24,40,h25,h26]) ).
thf(42,plain,
$false,
inference(tab_negimp,[status(thm),assumptions([h21,h22,h19,h20,h17,h18,h15,h16,h13,h14,h11,h12,h9,h10,h7,h8,h5,h6,h3,h4,h1,h2,h0]),tab_negimp(discharge,[h23,h24])],[h22,41,h23,h24]) ).
thf(43,plain,
$false,
inference(tab_negimp,[status(thm),assumptions([h19,h20,h17,h18,h15,h16,h13,h14,h11,h12,h9,h10,h7,h8,h5,h6,h3,h4,h1,h2,h0]),tab_negimp(discharge,[h21,h22])],[h20,42,h21,h22]) ).
thf(44,plain,
$false,
inference(tab_negimp,[status(thm),assumptions([h17,h18,h15,h16,h13,h14,h11,h12,h9,h10,h7,h8,h5,h6,h3,h4,h1,h2,h0]),tab_negimp(discharge,[h19,h20])],[h18,43,h19,h20]) ).
thf(45,plain,
$false,
inference(tab_negimp,[status(thm),assumptions([h15,h16,h13,h14,h11,h12,h9,h10,h7,h8,h5,h6,h3,h4,h1,h2,h0]),tab_negimp(discharge,[h17,h18])],[h16,44,h17,h18]) ).
thf(46,plain,
$false,
inference(tab_negimp,[status(thm),assumptions([h13,h14,h11,h12,h9,h10,h7,h8,h5,h6,h3,h4,h1,h2,h0]),tab_negimp(discharge,[h15,h16])],[h14,45,h15,h16]) ).
thf(47,plain,
$false,
inference(tab_negimp,[status(thm),assumptions([h11,h12,h9,h10,h7,h8,h5,h6,h3,h4,h1,h2,h0]),tab_negimp(discharge,[h13,h14])],[h12,46,h13,h14]) ).
thf(48,plain,
$false,
inference(tab_negimp,[status(thm),assumptions([h9,h10,h7,h8,h5,h6,h3,h4,h1,h2,h0]),tab_negimp(discharge,[h11,h12])],[h10,47,h11,h12]) ).
thf(49,plain,
$false,
inference(tab_negimp,[status(thm),assumptions([h7,h8,h5,h6,h3,h4,h1,h2,h0]),tab_negimp(discharge,[h9,h10])],[h8,48,h9,h10]) ).
thf(50,plain,
$false,
inference(tab_negimp,[status(thm),assumptions([h5,h6,h3,h4,h1,h2,h0]),tab_negimp(discharge,[h7,h8])],[h6,49,h7,h8]) ).
thf(51,plain,
$false,
inference(tab_negimp,[status(thm),assumptions([h3,h4,h1,h2,h0]),tab_negimp(discharge,[h5,h6])],[h4,50,h5,h6]) ).
thf(52,plain,
$false,
inference(tab_negimp,[status(thm),assumptions([h1,h2,h0]),tab_negimp(discharge,[h3,h4])],[h2,51,h3,h4]) ).
thf(53,plain,
$false,
inference(tab_negimp,[status(thm),assumptions([h0]),tab_negimp(discharge,[h1,h2])],[h0,52,h1,h2]) ).
thf(0,theorem,
( ! [X1: term,X2: term,X3: subst] :
( ( sub @ ( ap @ X1 @ X2 ) @ X3 )
= ( ap @ ( sub @ X1 @ X3 ) @ ( sub @ X2 @ X3 ) ) )
=> ( ! [X1: term,X2: subst] :
( ( sub @ one @ ( push @ X1 @ X2 ) )
= X1 )
=> ( sP6
=> ( ! [X1: term,X2: subst] :
( ( sub @ ( lam @ X1 ) @ X2 )
= ( lam @ ( sub @ X1 @ ( push @ one @ ( comp @ X2 @ sh ) ) ) ) )
=> ( ! [X1: term,X2: subst,X3: subst] :
( ( sub @ ( sub @ X1 @ X2 ) @ X3 )
= ( sub @ X1 @ ( comp @ X2 @ X3 ) ) )
=> ( ! [X1: subst] :
( ( comp @ id @ X1 )
= X1 )
=> ( ! [X1: term,X2: subst] :
( ( comp @ sh @ ( push @ X1 @ X2 ) )
= X2 )
=> ( ! [X1: subst,X2: subst,X3: subst] :
( ( comp @ ( comp @ X1 @ X2 ) @ X3 )
= ( comp @ X1 @ ( comp @ X2 @ X3 ) ) )
=> ( ! [X1: term,X2: subst,X3: subst] :
( ( comp @ ( push @ X1 @ X2 ) @ X3 )
= ( push @ ( sub @ X1 @ X3 ) @ ( comp @ X2 @ X3 ) ) )
=> ( ! [X1: subst] :
( ( comp @ X1 @ id )
= X1 )
=> ( ( ( push @ one @ sh )
= id )
=> ( ! [X1: subst] :
( ( push @ ( sub @ one @ X1 ) @ ( comp @ sh @ X1 ) )
= X1 )
=> ( ( var @ one )
=> ( ! [X1: term] :
( ( var @ X1 )
=> ( var @ ( sub @ X1 @ sh ) ) )
=> ( ! [X1: term > $o] :
( ( X1 @ one )
=> ( ! [X2: term] :
( ( var @ X2 )
=> ( ( X1 @ X2 )
=> ( X1 @ ( sub @ X2 @ sh ) ) ) )
=> ! [X2: term] :
( ( var @ X2 )
=> ( X1 @ X2 ) ) ) )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ X1 @ X3 )
= ( ap @ X2 @ X4 ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ X1 @ X3 )
= ( ap @ X2 @ X4 ) )
=> ( X3 = X4 ) )
=> ( ! [X1: term,X2: term] :
( ( ( lam @ X1 )
= ( lam @ X2 ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term] :
( ( ( sub @ X1 @ sh )
= ( sub @ X2 @ sh ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term,X3: term] :
( ( lam @ X1 )
!= ( ap @ X2 @ X3 ) )
=> ( ! [X1: term,X2: term] :
~ ( var @ ( ap @ X1 @ X2 ) )
=> ( ! [X1: term] :
~ ( var @ ( lam @ X1 ) )
=> ( ! [X1: term > $o] :
( ! [X2: term] :
( ( var @ X2 )
=> ( X1 @ X2 ) )
=> ( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ( X1 @ X2 )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term] : ( X1 @ X2 ) ) ) )
=> ( ! [X1: term > $o,X2: term,X3: subst] :
( ! [X4: term] :
( ( var @ X4 )
=> ( X1 @ ( sub @ X4 @ X3 ) ) )
=> ( ( X1 @ X2 )
=> ! [X4: term] :
( ( var @ X4 )
=> ( X1 @ ( sub @ X4 @ ( push @ X2 @ X3 ) ) ) ) ) )
=> ( ! [X1: term > $o] :
( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ! [X3: term] :
( ( X1 @ X3 )
=> ( X1 @ ( sub @ X2 @ ( push @ X3 @ id ) ) ) )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term,X3: subst] :
( ! [X4: term] :
( ( var @ X4 )
=> ( X1 @ ( sub @ X4 @ X3 ) ) )
=> ( X1 @ ( sub @ X2 @ X3 ) ) ) ) )
=> ( ! [X1: term > $o] :
( ! [X2: term] :
( ( var @ X2 )
=> ( X1 @ X2 ) )
=> ( ! [X2: term,X3: term] :
( ( X1 @ X2 )
=> ( ( X1 @ X3 )
=> ( X1 @ ( ap @ X2 @ X3 ) ) ) )
=> ( ! [X2: term] :
( ! [X3: term] :
( ( X1 @ X3 )
=> ( X1 @ ( sub @ X2 @ ( push @ X3 @ id ) ) ) )
=> ( X1 @ ( lam @ X2 ) ) )
=> ! [X2: term] : ( X1 @ X2 ) ) ) )
=> ( ~ ( ~ ( ! [X1: subst,X2: subst,X3: subst] :
( ( comp @ ( comp @ X1 @ X2 ) @ X3 )
= ( comp @ X1 @ ( comp @ X2 @ X3 ) ) )
=> ~ ! [X1: subst] :
( ( comp @ id @ X1 )
= X1 ) )
=> ~ ! [X1: subst] :
( ( comp @ X1 @ id )
= X1 ) )
=> ( ~ ( ! [X1: term,X2: subst,X3: subst] :
( ( sub @ ( sub @ X1 @ X2 ) @ X3 )
= ( sub @ X1 @ ( comp @ X2 @ X3 ) ) )
=> ~ sP6 )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ ( sub @ X1 @ id ) @ X3 )
= ( ap @ ( sub @ X2 @ id ) @ X4 ) )
=> ( X1 = X2 ) )
=> ( ! [X1: term,X2: term,X3: term,X4: term] :
( ( ( ap @ ( sub @ X1 @ id ) @ X3 )
= ( ap @ ( sub @ X2 @ id ) @ X4 ) )
=> ( X3 = X4 ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ! [X2: subst > term > term] :
( ! [X3: subst,X4: term,X5: subst] :
( ( sub @ ( X2 @ X3 @ X4 ) @ X5 )
= ( X2 @ ( comp @ X3 @ X5 ) @ ( sub @ X4 @ X5 ) ) )
=> ( ( ( lam @ ( X1 @ sh @ one ) )
= ( lam @ ( X2 @ sh @ one ) ) )
=> ! [X3: subst,X4: term] :
( ( X1 @ X3 @ X4 )
= ( X2 @ X3 @ X4 ) ) ) ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ! [X2: term,X3: term] :
( ( lam @ ( X1 @ sh @ one ) )
!= ( ap @ ( sub @ X2 @ id ) @ X3 ) ) )
=> ( ! [X1: subst > term > term] :
( ! [X2: subst,X3: term,X4: subst] :
( ( sub @ ( X1 @ X2 @ X3 ) @ X4 )
= ( X1 @ ( comp @ X2 @ X4 ) @ ( sub @ X3 @ X4 ) ) )
=> ~ ( var @ ( sub @ ( lam @ ( X1 @ sh @ one ) ) @ id ) ) )
=> ( ! [X1: term,X2: term] :
~ ( var @ ( sub @ ( ap @ ( sub @ X1 @ id ) @ X2 ) @ id ) )
=> ! [X1: subst > term > subst > $o,X2: term > $o] :
( ! [X3: subst,X4: term,X5: subst,X6: subst] :
( ( X1 @ X3 @ X4 @ ( comp @ X6 @ X5 ) )
=> ( X1 @ ( comp @ X3 @ X6 ) @ ( sub @ X4 @ X6 ) @ X5 ) )
=> ( ! [X3: subst,X4: term,X5: subst,X6: subst] :
( ( X1 @ ( comp @ X3 @ X6 ) @ ( sub @ X4 @ X6 ) @ X5 )
=> ( X1 @ X3 @ X4 @ ( comp @ X6 @ X5 ) ) )
=> ( ! [X3: term] :
( ( var @ ( sub @ X3 @ id ) )
=> ( X1 @ id @ X3 @ id ) )
=> ( ! [X3: term] :
( ( X2 @ X3 )
= ( X1 @ id @ X3 @ id ) )
=> ! [X3: term] :
( ( var @ X3 )
=> ( X2 @ X3 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
inference(contra,[status(thm),contra(discharge,[h0])],[53,h0]) ).
%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.00/0.12 % Problem : ALG263^3 : TPTP v8.1.2. Bugfixed v5.2.0.
% 0.00/0.13 % Command : lash -P picomus -M modes -p tstp -t %d %s
% 0.13/0.34 % Computer : n012.cluster.edu
% 0.13/0.34 % Model : x86_64 x86_64
% 0.13/0.34 % CPU : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.13/0.34 % Memory : 8042.1875MB
% 0.13/0.34 % OS : Linux 3.10.0-693.el7.x86_64
% 0.13/0.34 % CPULimit : 300
% 0.13/0.34 % WCLimit : 300
% 0.13/0.34 % DateTime : Mon Aug 28 05:34:40 EDT 2023
% 0.13/0.34 % CPUTime :
% 0.19/0.46 % SZS status Theorem
% 0.19/0.46 % Mode: cade22sinegrackle2x6978
% 0.19/0.46 % Steps: 622
% 0.19/0.46 % SZS output start Proof
% See solution above
%------------------------------------------------------------------------------